Win $20,000. Help build the future of education. Answer the call. Learn more

What is MicroProfile?

Overview

MicroProfile is a community-driven specification designed to provide a baseline platform definition that optimizes the Enterprise Java for microservices architecture and delivers application portability across multiple MicroProfile runtimes, including Open Liberty. It gives Java developers a platform to collaborate and innovate on areas of common interest. The MicroProfile specification consists of a collection of Enterprise Java APIs and technologies that together form a core baseline for microservices that aims to deliver application portability across multiple runtimes.

Watch Ivar Grimstad’s video Introduction to Eclipse MicroProfile to gain a deeper introduction to this initiative, or check out the useful MicroProfile overview. Alternatively, you can check out the recording of our IBM Crowdcast session A new and Open Way to Build Cloud-Native Microservices – MicroProfile.

Objectives

Upon completion of this series, you will:

  • Develop a greater understanding of what MicroProfile is and what is included within this specification
  • Gain a greater understanding and appreciation of the open-source community that drives this specification
  • Understand where this open-source specification fits within the Java enterprise application development process/stack
  • Understand how this specification interoperates and interacts with other open source specifications, tools and technologies, including JakartaEE, Open Liberty, cloud technologies, etc.
  • Deep-dive into the specific APIs or components of the most recent major release of this specification, understanding how each operates and how to them
  • Get hands on with the APIs offered as part of this specification through interactive labs and tutorials

Prerequisite knowledge

This series is designed to give developers an introduction to MicroProfile. However, a basic understanding of Java and application development would be helpful. You will also need an understanding of command lines in order to undertake the interactive labs and tutorials included in this learning series.

Skill level

Beginner

Estimated time to complete

Approximately 4 hours

What does MicroProfile include?

MicroProfile was created in 2016 and, shortly after version 1.0 was released, it became part of the Eclipse Foundation to ensure that it would remain vendor-neutral. Since then, there have been four major releases of the MicroProfile platform with the addition of many specifications to address the needs and feedback of users. MicroProfile 4.0 (the most recent major release), is composed of the components shown below.

MicroProfile 4.0 stack

There are also several stand-alone components that the MicroProfile community have created and develop, but are not part of the standard MicroProfile stack.

MicroProfile Standalone Projects

What does MicroProfile have to offer?

Prior to the creation of MicroProfile, the Java EE platform had become stable and mature, resulting in less-frequent releases. Despite Java EE innovation slowing down, web services continued to evolve, leading to the creation of new technologies such as RESTful web services, JSON, HTTP/2, and microservices architecture. With its slower release cycle, Java EE failed to keep up with changes in the industry. However, aware of the skills and investment that both vendors and enterprises put into Java EE, several vendors (including IBM), supported by the active Java community, decided to come together and create MicroProfile, an optimized platform for microservices architecture. MicroProfile offers vendor-neutral cloud-native APIs that can be freely used and can be integrated with many other cloud-native technologies and tools.

The benefits of MicroProfile include:

  • Open source project
  • Vendor-neutral
  • Community-driven
  • Frequent, incremental feature releases

To learn more about exactly what MicroProfile offers the Java community, see Emily Jiang’s article, Eclipse MicroProfile: What it has to offer to the Java community​.

How does MicroProfile interface with other open source projects and tools?

Deep-dive into MicroProfile 4.0

MicroProfile 4.0 was the latest major release of this open source initiative. This was the first release of MicroProfile under the new MicroProfile Working Group. MicroProfile 4.0 adopts Jakarta EE 8 specifications, including:

  • CDI 2.0
  • JAX-RS 2.1
  • JSON-B 1.0
  • JSON-P 1.1

It also includes eight MicroProfile specifications:

  • Rest Client 2.0
  • Open API 2.0
  • Fault Tolerance 3.0
  • JWT 1.2
  • Config 2.0
  • Open Tracing 2.0
  • Health 3.0
  • Metrics 3.0

For a deep-dive into MicroProfile 4.0 and the corresponding API updates that come with it, check out Emily Jiang’s Open Liberty blog and corresponding video:

For a deep-dive into some of the MicroProfile APIs with major updates released through MicroProfile 4.0, check out our Open Liberty blogs and our corresponding demo videos.

MicroProfile REST Client

MicroProfile Config

MicroProfile JWT

MicroProfile stand-alone projects

If you're interested in some of the MicroProfile stand-alone projects, check out our corresponding material on these:

MicroProfile Reactive Messaging

MicroProfile LRA

MicroProfile GraphQL

MicroProfile Context Propagation

Next steps

How can I get hands-on with MicroProfile?

If you’d like to get hands-on with the APIs offered as part of the MicroProfile specification, and/or how these interact with other technologies and tools — like Apache Kafka, Kubernetes, Istio, Jaegar, MongoDB, Zipkin, MicroShed Testing, etc. — then head over to Open Liberty Guides. Find labs that cover each of the APIs within the standard MicroProfile stack.

Open Liberty MicroProfile Guides

You can either complete these labs locally on your machine or utilize the cloud-hosted environment, which has all of the prerequisites already set up for you.

Or you can check out this tutorial focused on utilizing open technologies, including Open Liberty and MicroProfile, to build a microservice with Java and deploy it to the cloud with Kubernetes: Get your Java microservice up and running.