MircoService = Component + Standard Interface (RESTFul with JSON) + Supported Environment (Authentication / Health Check / Metrics / Tracing / Fault Tolerance / Standard API Document)

Java EE MicroServices (MicroProfile)

MicroProfile specifies a collection of Java EE APIs and technologies which together form a core baseline microservice that aims to deliver application portability across multiple runtimes.

Eclipse MicroProfile = CDI + JAX-RS + JSON-P/JSON-B + MPs (MP config / MP Fault Tolerance / MP Health Check / JWT Authentication / MP Metrics/ OpenAPI / OpenTracing / Rest Client)

* Fault Tolerance

Eclipse MicroProfile Fault Tolerance provides the ability to separate execution logic from business logic. Key aspects of the API include TimeOut, RetryPolicy, Fallback, Bulkhead, and Circuit Breaker processing.

* Health Check

Eclipse MicroProfile Health Check provides the ability to probe the state of a computing node from another machine

* JWT Authentication

JWT Authentication provides role based access control (RBAC) microservice endpoints using OpenID Connect (OIDC) and JSON Web Tokens (JWT).

* Metrics

MicroProfile Metrics provides a unified way for MicroProfile servers to export monitoring data to management agents. Metrics will also provide a common Java API for exposing their telemetry data.

* OpenAPI

OpenAPI provides a unified Java API for the OpenAPI v3 specification that all application developers can use to expose their API documentation

* OpenTracing

MicroProfile OpenTracing defines an API and associated behaviors that allow services to easily participate in a distributed tracing environment.

* MicroProfile Rest Client

Eclipse MicroProfile Rest Client provides a type-safe approach for invoking RESTful services over HTTP. The MicroProfile Rest Client builds upon the JAX-RS 2.1 APIs for consistency and ease-of-use.

MicroProfile Implementations:

Reactive MicroServices

Reactive Systems are Responsive, Resilient, Elastic and Message Driven.

Akka and Vert.x are two commonly used reactive frameworks that run on top of the JDK



Reactive MicroService