Event collaboration describes an architectural principle that works well together with an event-driven publish/subscribe architecture.
Consider the following example that uses the regular request/reply communication pattern—a user requests the booking service to book a ticket for a certain event. Since the events are managed by another microservice (the EventService), the BookingService will need to request information on both the event and its location from the EventService. Only then can the BookingService check whether there are still seats available and save the user's booking in its own database. The requests and responses required for this transaction are illustrated in the following diagram:
Now, consider the same scenario in a publish/subscribe architecture, in which the BookingService and EventService are integrated...