This page is an example standard which explains how all systems in Software Engineering in Digital Products in Carlsberg must use event driven architectures.
For context please see: Software Architecture Patterns
This means that each system or service that masters data (Order Service, Customer Service etc.) must raise (create, produce, publish, etc) an appropriate event to the central event hub using a specific topic every time a pre-defined action (business or just plain CRUD) occurs on data in that system or service. Systems or services which listens to these events (consumers, subscribers etc) can then based on meta data in the event decide if it’s required to go to the system or service API and get the full data which is associated with the event.
This means that every system or service which we build must support the following architecture pattern:
This is the order of events:
- The client performs an action through the API on Service A
- The change of state on the data in the Service causes the Service to raise an event on the central event hub on a specific topic B
- The event hub notifies all the consumers that an event on topic B has occurred
- The consumer examines the event and decides if it’s required to call the producers API to get the entire data of the event
- The consumer call the producers API with a direct link to get the entire data of the event (ideally using a unique identifier so that the data can be found in the in storage layer without having to search for it)