Master async communication patterns. From Events vs Commands to advanced Pub-Sub and Message Queues.
Commands are intents (do this). Events are facts (this happened). Commands typically have one handler; Events can have many.
Sync blocks the caller until completion. Async returns immediately, processing happens in background.
Point-to-Point channel. One sender, one receiver. Ensures a message is processed exactly once by one consumer.
One publisher, multiple subscribers. Messages are broadcasted to all interested services via topics.
Storing state as a sequence of events rather than just the current state. State is derived by replaying events.
A holding pen for messages that cannot be processed successfully after max retries.