pull down to refresh

Choosing the right communication style can save you 50% of them.

You can classify the communication into major groups.

Synchronous & Blocking:

  • REST over HTTP
  • GRPC

With request-response (synchronous), we expect the response to return to the instance that sent the request.

Asynchronous & Nonblocking:

  • Queue-Based brokers
  • Even-Driven
  • Common Data

With asynchronous communication, the response can come back later, even to a different instance.

One of my favorites is Even-Driven

Event-driven communication is, by definition, asynchronous.

A microservice emits an event, and other microservices can react if they are interested.

An event is a statement that something happened (for example, OrderPlaced).

With event-driven communication, a microservice doesn't tell another microservice what to do.

It's up to downstream microservices to make a judgment call on what they do with that information.

Two things to consider:

  1. Event-driven collaboration can promote more loosely coupled architectures. But, understanding how the system behaves requires more work.
  2. You also need a message broker, which can further complicate matters.

Request-response and event-driven both have their place.

Some problems just fit one model more than another, and it's common for a microservice architecture to have a mix of styles.

https://m.stacker.news/32747