The dark side of event-driven microservices
Microservices is a set of loosely coupled microservices implementing bounded context that identifies module boundaries and how they interact with each other. The concept of bounded context is discussed, in detail, in Chapter 2, Failing to Understand the Role of DDD. Microservices can be designed as event-driven architecture, where microservices communicate with each other by sharing state changes. The following diagram depicts an event-driven architecture:
In the preceding diagram, events are produced by producer microservices as an event stream, which is later consumed by multiple consumer microservices. Event streams are served by the event broker (or event bus), which decouples producers from consumers. One of the challenges of event-driven architecture is its difficulty in figuring out how different microservices are communicating with each other via events. One way...