The Event-Driven model heavily relies on the QUALITY of events. Good quality events are: explicitly defined via contracts have comments support evolution with backward and forward compatibility support code generation breaking changes are well thought Good events are implemented using the right tools: use Avro/Thrift/Protobuf formats and never use JSON! use the right event broker (such as Pulsar) Good events are designed to: contain all the info needed by consumers use separate streams for each event type use the right data types for their fields (don’t use string for numbers, use enums, etc.
The book club of our company has chosen a new wonderful book for reading: Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Fifth part of the book contains A LOT of useful information: What is software architecture? What type of interdependencies can exist? How to draw borderlines between components? What type of borders exist? How to distribute policies by the levels? What are business rules, entities and use cases?