What is MicroProfile?

Cloud & Microservices

Java programming language can be enhanced with specifications. An specification is a baseline platform definition – a framework – to guide concrete implementations. 

One of these specifications is called MicroProfile. But what is MicroProfile specification, what is it used for and why might you need it? 

This blog explains all. 

What Is MicroProfile?

The MicroProfile specification is a set of Enterprise Java APIs and technologies, designed to help with the challenge of building microservices architectures in Java. 

They are intended to be used on top of Jakarta EE APIs to add specific functionalities that are needed when developing microservices. 

Wait, What Is Jakarta EE?

Jakarta EE is a set of software components that extend Java SE – the standard edition Java programming language – with ways to perform the functions particularly useful for an enterprise application. You can read our previous blog ‘What is Jakarta EE?’ for more information. 

Wait, What Are Microservices?

Microservices refer to a software architecture style where your application is structured in small code, granular modules or services. Services can then be deployed and maintained independently from each other. Read our ‘Explaining Microservices: No Nonsense Guide for Decision Makers’ for more information about microservices. 

How Does MicroProfile Help You With Microservices Applications? 

MicroProfile has ready-made APIs to deal with common challenges in microservices architecture. It means you can use MicroProfile APIs, rather than write custom code to fix some problems. For example:

  • Problem: Difficult to debug and trace issues in a microservices architecture, when there are multiple different modules or services.
    MicroProfile Solution: Open Tracing– APIs where you can build traces for remote calls (a client app creates a request for a resource from a remote service) and use them for debugging purporses.
  • Problem: Microservices architecture necessitate lots of remote calls to other remote services – these might not be available and cause problems for the end user.
  • MicroProfile Solution: Fault Tolerance– this allows you to add annotations to a remote call, so if it isn’t successful, you can provide fall back to a different service, or APIs for retrying the call.
  • Problem: More independently built services = more data and metrics in different systems. How do you keep track of them to monitor performance and usage?
  • MicroProfile Solution: Metrics– this API gathers data and metrics from different services and combines them into a centralized system. 

Who Maintains MicroProfile? 

Both MicroProfile and Jakarta EE are managed by the Eclipse Foundation, a not-for-profit software corporation that stewards many open source projects. 

MicroProfile is open source, so anyone can get involved in the project. The Eclipse Foundation manages the MicroProfile Working Group, an open forum where different vendors work together to build the brand, establish the technical roadmap, define the rules around compatibility and what makes a MicroProfile compatible implementation. 

What Is A MicroProfile Implementation? 

Like Jakarta EE, each MicroProfile API has a Technology Compatibility Kit (TCK), a test suite your software has to pass to prove it is compatible with the API.

Compatible implementations will follow the specifications and pass the TCKs. 

What Is A MicroProfile Runtime? 

MicroProfile, like Jakarta EE, is designed to work with a runtime. A runtime is a program where your application runs. It handles HTTP requests sent by its clients over the internet. A MicroProfile runtime will need to pass the TCKs to be a compatible implementation – and allow you to use your applications with MicroProfile! 

Many different vendors have created MicroProfile compatible runtimes, including Payara. Payara Micro is our lightweight solution: MicroProfile and Jakarta EE compatible and designed for containerized Jakarta EE and MicroProfile deployments.

Further Reading :

Comments (1)

Post a comment

Your email address will not be published. Required fields are marked *

Payara needs the contact information you provide to us to contact you about our products and services. You may unsubscribe from these communications at any time. For information on how to unsubscribe, as well as our privacy practices and commitment to protecting your privacy, please review our Legal & Privacy Policy.

  1. Marc Bonet

    Great info!
    Precise, concisely, clear and well structured.
    Thanks!

Related Posts

Payara promotional graphic showing transition from Spring to Jakarta EE, including technology logos, a code icon and arrows leading from Spring to Jakarta EE. 6 minutes
Jakarta EE

From Spring Boot To Jakarta EE 11: How Payara Starter Eases The Transition

If you’ve been living in the Spring ecosystem, you’re used to fast project setup. Spring Initializr gives you a […]

Graphic promoting the Jakarta EE Agentic AI Project by Payara Community. The design shows a laptop screen with a central icon of a person wearing headphones and using a laptop, surrounded by sparkles. The background features blue ocean-themed elements with coral and small fish. Logos for Jakarta EE and Payara Community appear at the top. 3 minutes
Community

Announcing the Jakarta Agentic AI Project

Exploring the Future of AI with the Jakarta EE Community At Payara, we’re passionate about pushing the boundaries of […]

Image promoting a Payara blog with an illustration of a document with checkmarks and a magnifying glass. 5 minutes
Jakarta EE

Why Jakarta EE Standards Make Legacy App Modernization Simple

Legacy Java applications built on enterprise standards don’t have to be roadblocks to modernization. When applications follow established specifications […]