To understand MicroProfile, first we need to understand the Java EE/ Jakarta EE and its challenges and goals.
In a real world, companies need to be able to response to new challenges faster and faster. With this, enterprise world has challenges different from non-enterprise world, because companies need to be able to change fast to correspond to innovate and provides solutions better and better. Furthermore, companies need be scalable to provide its service to a major number of users. With this, the IT began to split the problems and provides solutions in multiples applications that make a communications between them, and those applications began to share data. Then, a new set of problems began to appear in an enterprise world, such as problems about integrations and relationship between components. With this, a new set of patterns to solutions needed to be created to response to the new challenges.
Java EE and now Jakarta EE is an umbrella project that provide patterns solutions to common problems that occur in an enterprise world. It is a set of specs (such as CDI, JPA, JSF, EJB and others) to solve several enterprise problems, and permit that multiple vendors implements these specs. With this, developers can write an enterprise application with Java EE/ Jakarta EE using any vendor that provides the implementation of these specs.
However, with emergence of Cloud and the Cloud Native Application concept, new challenges emerged too and created a gap on Java EE. One gap created on Java EE was solutions to problems about Microservice architecture and solutions to implementing the 12 factors.
MicroProfile is an umbrella project with aim to be an extension of Java EE/ Jakarta EE to Microservice architecture. It contains a set of specs that is formed by some specs of Java EE and other own specs. With this, Microprofile has some specs to solve problems about Microservice architecture and to implementing the 12 factors. MicroProfile initiative with Jakarta EE has a promise to closer the Java to enterprise to Cloud Native Application, promoting a common solutions to explore the Cloud.
MicroProfile 1.4 is based on Java EE 7 and provide support to some specs of Java EE 7, and the MicroProfile 2.0 is based on Java EE 8 and provide support to some specs of Java EE 8. Below we have an image to illustrate that.
Note that the MicroProfile don’t have support to all specs of Java EE/Jakarta EE. The aim is over time, other Java EE/Jakarta EE spec will be inserted to MicroProfile.
If you want to know more about MicroProfile, access this link MicroProfile.