Microservice development with Microprofile 3.0


Microservice is one the hot trends with-in developer community in the recent years. Microservice is not a new technology but this is a new architecture style for modern Cloud native application development.

What is Microprofile?

Microprofile is an answer to the Java developers to build microservices in the modern era. Microprofile initiative was started few years ago and now this is backed-up by Eclipse foundation. Moreover this is being supported by many technology vendors and communities.

What Microprofile offers?

Microprofile offers lots of features out of the box (refer the cover image). There are lots of new changes introduced in every release of Microprofile.

Top 5 Benefits of Microprofile framework

I would like to share the top 5 benefits of Microprofile framework.

  1. Knowledge re-usability
  2. No vendor lock-in
  3. Bundle what you need
  4. Small footprint
  5. Depend of the specification / Community back-up

1. Knowledge re-usability

Microprofile specification follows and built on top of the existing technologies like JAX-RS, CDI, JSON-B and JSON-P. This also includes few additional features like Open Tracing, Open API, Fault Tolerance, Health Check. But the beauty is that, all the new additional features are very well integrated with the existing technologies. So as a developer we have nothing to learn any new technologies to build Microservices. There are many options / Java technologies available in the market to build Microservices. Take a case of Spring boot. You can’t start building Microservices using Spring boot without learning the basics of the constraints. Even though the learning curve is minimal, you should spend a meaningful time with the framework to understand the core parts. But with the Microprofile specification, we can re-use our existing Java EE knowledge and start focusing on our business problem from day one.

2. No vendor lock-in

Most of the framework offers plenty of capabilities to build Microservices to meet our goto market strategy. But this has some demerits as well. Most of those frameworks follows opinionated style of design. So that we are locked with those frameworks and we have no choice to select something best in the market based on our business need. Where-in Microprofile specification follows the industry standards and there is no lock-in with the way we program. There are lots of players like Payara Micro, IBM Open Liberty and JBoss Thorntail supports Microprofile specification. Meaning we need to depend simply on the specification and we can move between any players based on our organization demands.

3. Bundle what you need

Java EE == Bulk

I believe we all have heard this complaints from many developers in the past. Irrespective of the usage, we are forced to bundle all the dependencies along with our application. This become an overhead when it comes to CI / CD model of cloud development. With Microprofile we have the flexibility to bundle what to use and what to bundle. Each feature is available as an individual component / module and we can choose only those modules in our final delivery. This is awesome!

4. Small footprint

This one completely depend on the previous point of ‘Bundle what you need’. Footprint is not only talking about the size of the bundle and optimization at the runtime as well. Since this is small in size, we can streamline our DevOps cycle and speed-up our cloud delivery.

5. Depend of the specification / Community back-up

Microprofile is the specification for building Cloud native application in Java. The specification is developed by lots of technology leaders and open community. So we have every opportunity to spread our messages to be heard. Since Microprofile is under the Eclipse foundation we can also contribute to the project to take it to the next level.

Happy coding!

I believe this article has given you a high level overview on Microprofile specification. Please share your feedback to improve in the future!

API Evangelist | Chief Hustler @workrituals.com | Habit Coach | Madras Java User Group Leader

Latest articles

Flutter: How does column layout work?

Layouts are the fundamental starting points for developing Flutter applications. There are many layout options are available by default. I am going...

Flutter: Stateless vs Stateful widgets

Flutter is a mobile application development framework developed by Google. You need to understand the fundamental building blocks before you dig deeper...

Why Flutter is a great technology for makers &...

As per the wikipedia, Flutter is an open source UI development kit created by Google. It is used to...

Why 12-Factory methodology matters to your Microservice development?

The 12-Factor application development methodology and why is it important for your microservices strategy

When to use Firebase Cloud functions?

Recently I got a question from one of the Indie makers that, when to use Firebase Cloud Functions? This...

Similar articles