Tech Hub

Reactive Microservices

Islands of composable functionality

From the early days of object oriented programming and service-oriented architectures, experts have recognized the benefits of encapsulation and of loose coupling between modules. Reactive Microservices offer isolation and autonomy at a level that traditional architectures cannot.

Reactive Microservices each have a single responsibility and publish their capabilities through a protocol. They are message-driven and can cooperate and collaborate without being tightly coupled. These characteristics enable new development and deployment patterns:

  • Each microservice is owned by a single team.
  • Microservices can be monitored, tested, and debugged independently.
  • Microservices can be upgraded frequently without impacting the other services in the system, supporting Continuous Delivery.
  • Microservices can scale up and down and in and out independently, you can add resources or add and remove specific instances as demand fluctuates without affecting other services.

Mobility and addressability give Reactive Microservices resilience at both an individual and a system level. A cluster of microservice instances can be deployed in different JVMs, if a single instance fails, the others are still available. If a cluster of a particular microservice fails, the rest of the system can continue, although possibly with diminished capability. With supervision and coordination, a system can even become self-healing by restarting failed microservices and clusters without human intervention.

Achieving Reactive characteristics requires thinking about the system as a whole in a different way. During design, it is helpful to focus on events and accept the reality of eventual consistency.

On design: “Individual Microservices are comparatively easy to design and implement — what is hard in a Microservices-based Architecture is all the things around them: discovery, coordination, security, replication, data consistency, failover, deployment, and integration with other systems, just to name a few.”

From Reactive Microservices Architecture by Jonas Bonér.

Next Up → Events and Eventual Consistency

Learn more

In less than 15 minutes:

In less than an hour:

Really dig in: