Deploy-Friday: E22 MicroProfile: Optimizing Java for a Microservices Architecture

A Question and Answer session with guests: 

The MicroProfile project defines a programming model for developing microservice applications in an Enterprise Java environment.  In this session, we'll briefly introduce MicroProfile, then discuss its current technical and community status, including efforts to standardize Java microservices.

MicroProfile Config With etcd

In this short video, Rudy de Busscher demonstrates how to use MicroProfile Config with etcd. 

Eclipse MicroProfile has been created as a open source specification for Enterprise Java microservices. It's aim is to work on microservices patterns for Enterprise Java and to integrate applications with the infrastructures they run on, with patterns like health checks, metrics, etc. The MicroProfile project was launched in June 2016 as a collaborative effort between Java application server vendors and the enterprise Java community to enable fast innovation.

Microservices in the Cloud, Part One

Microservices are software architecture, where the systems are a collection of several independent services. Each service has a specific business focus and communicates with the others with a language-agnostic protocol, such as REST. The Eclipse MicroProfile initiative optimizes Enterprise Java for the microservices architecture. It’s based on a subset of Jakarta EE APIs. This post will give an overview of some best practices for working with Java microservices on Platform.sh.

An interpretation of Java microservices.
You may also like: Everything You Need to Know About Socket.IO

Databases

Each database has its proposal, structure, and particular behavior, so we'll use different databases according to each service. Indeed, that’s the advantage of microservices; each service can use any technology that conforms to its requirements without impacting the other services. Each microservice uses an appropriate database for its particular use case:

Getting Started With Java EE 8, Java 11, and Eclipse for Enterprise Java and Wildfly 16

If you have been in the Java EE space over the last few years, Eclipse IDE for Java Enterprise Developersis probably one of the best IDE experiences, making the creation of applications with important EE components like CDI, EJB, JPA mappings, configuration files, and good interaction with some of the important application servers (TomEE, WebLogic, Payara, Wildfly, JBoss).

In this line, Red Hat develops the Eclipse variant "CodeReady Studio," providing you with an IDE that supports Java Enterprise frameworks, Maven, HTML 5, Red Hat Fuse, and OpenShift deployments.

Jakarta EE: A Clean Slate

The announcement that Jakarta EE cannot use the javax.* namespace is great news and provides Jakarta EE with a clean slate on which to build and innovate the future of Enterprise Java.

The Original Proposal

It had been envisioned that the javax.* and jakarta.* namespaces would coexist after Java EE 8 and, as it evolved, the jakarta.* namespace would be used for new features of exiting APIs and the innovation of new APIs. This would have ensured backward compatibility from the start. And overtime the use of jarkata.* would eclipse the old namespace, but never actually replacing javax.* namespace. So, forever more Enterprise Java developers would have to explain why there are two namespaces. A constent reminder of Enterprise Java’s past (something we are trying to move on from).