Getting into event-driven architecture, you may have heard the term “event” a lot. Uncle bob highlitghted the differences behind the same concept in his article. Let’s have a look
Event Notification
You just pass the event, no payload. Light, simple, and efficient. It’s like a notification where you don’t need to know the details. If you want the details, check the database.
Event-Carried State Transfer
You pass the event & the payload. It’s like a notification with the details attached to it. You don’t need to check the database. Reduces requests between services, and keeps track of the state by attaching the state as a payload.
Event-Sourcing
All events are in the event store. Single source of truth. To be honest, I don’t know much on this one, but I know there is a learning curve, and it adds complexity.
CQRS
Reading the DB is done differently than writing to the DB. Could be different languages. Could even be different DB. You can scale them independently
Resources
- 👨🏻‍💻 uncle bob
- Define an aggregate: too big ? too short ? entity & value object kalele
- Value Object by Martin Fowler
- Demeter Law