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.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  1. Marc Bonet

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

Related Posts

Docker logo 4 minutes
Community

Level Up Your Jakarta EE Apps with Payara 7 and New Docker Images

We’re excited to share major updates around the Docker image story for the Payara Platform Community, aligned with our […]

Timeline showing Payara Platform Enterprise 4, 5, and 6 support phases (Full, Extended, Lifetime) from 2023–2033, along with JDK 8, 11, 17, and 21 support periods and end-of-life markers. 4 minutes
Thought Leadership

Understanding the Payara Platform Enterprise Software Lifecycle: How We Support Long-Term Stability 

Keeping an application server running smoothly isn’t so much about new features, but more about predictability and consistency. Software […]

Patrik Dudits presenting at Devoxx Belgium 2025 5 minutes
Cloud & Microservices

Devoxx BE 2025: It Only Starts with a Container & How Abstraction Becomes Reality 

At Devoxx Belgium 2025, I was able to talk about what happens after you build your container. In theory, […]