What Is Eclipse MicroProfile?
While microservices can provide developers a slough of advantages, they don't come without their challenges as well. Originating from Java user groups and server vendors, Eclipse MicroProfile aims to address the limitations of microservices in enterprise Java development.
In this blog, we explore Eclipse MicroProfile: what it is, why it was created, its future, and using MicroProfile with JRebel.
What Is Eclipse MicroProfile?
MicroProfile is an Eclipse project that provides a collection of specifications designed to help developers build cloud-native microservices.
Starting the development of a new application couldn't be easier these days, as all the resources are now available online. Well, at least that’s how it seems. At the beginning, however, there are many things that need to be decided. For now, let’s put all the questions about frameworks and technologies aside and focus on one of the most important decisions – the architecture of the application. Monolith or microservices?
Let’s say you decide on microservices. That's great! They are very common today and much discussed, but you don’t want to start from scratch. You'll most likely you want to start with a reliable solution. One of the available solutions you may consider is Eclipse MicroProfile.
Goals of Eclipse Microprofile
The main goal of the MicroProfile is to define standard APIs for the optimal development of cloud-native microservices. These standard APIs are adopted from the Java EE standard and extended by thosethat are useful for the microservices pattern.
In addition, vendor lock-in risk is eliminated by multiple implementations.
History of Eclipse MicroProfile
Initially released in September 2016, the first version of Eclipse MicroProfile was formed on JAX-RS, JSON-P, and CDI. While the first two are specifications that provide API, CDI puts everything together. As you can see, these are parts of Java EE and that is because MicroProfile targets enterprise applications.
Over the last few years, MicroProfile has added many more implementations and components. For example, it is implemented in WildFly SWARM, Open Liberty, Apache TomEE, and others.
Future of Eclipse Microprofile
The current version, MicroProfile 3.3, was released in February 2020. Major changes against the MicroProfile 3.2 are incremental updates for the following modules:
- Metrics 2.3
- Fault Tolerance 2.1
- Rest Client 1.4
- Config 1.4
- Health 2.2
There is active development on the new version. As of the writing of this blog, MicroProfile 4.0-RC1 is available. According to MicroProfile’s release process, this is a major update bringing updates to:
- MicroProfile Config (2.0-RC1)
- MicroProfile JWT Authentication (1.2-RC1)
- MicroProfile OpenAPI (2.0-RC3)
Speaking about the future, the goal is to “iterate and innovate in short cycles.” In addition, the newest version is the first release to be based on Jakarta EE.
To try out MicroProfile 4.0-RC1, just open your pom.xml and add the following dependency:
JRebel and Eclipse Microprofile
Our productivity tool, JRebel, works well with implementations of Eclipse MicroProfile that we support. such as Payara Server, WebSphere Liberty, or WildFly.
To start working with JRebel, you need to enable JRebel for your MicroProfile project.
Once you start the server with the JRebel agent attached, you can enjoy skipping the long reload times! A good sign that it is working is a message from the JRebel agent that a specific class was reloaded.
If you need reliable specifications for your new project that is microservice oriented, definitely consider MicroProfile as one of the options. By bringing together many parts of the Java ecosystem in open collaboration, enterprise java in microservice-based architectures has been optimized for the benefit of all members of the community.
If you want to learn more about how to improve microservices performance for your Java application, we recommend checking out the resources we have listed below — especially our white paper, The Developer's Guide to Microservices Performance.
You may also be interested in our webinar, Improving Performance in Java Microservices. Click "Play" below to start watching on-demand.
Looking for something a little different? Check out our other on-demand webinars and blogs pertaining to microservices below.
For all of our content related to Java microservices, check out our comprehensive guide to Exploring Java Microservices.