Join me on a journey of distributed system principles spiced up with a few horror stories of how bad it can go.
We will start by looking at why everyone’s favourite request-response style integration is deeply problematic, how messaging can solve many of the issues we’re facing and finally how events can play a crucial role in building adaptable loosely coupled services.
Agenda highlights
- What 15 years of implementing distributed system have taught me
- What’s wrong with RPC / Request-Response style integration?
- How to achieve consistency – aka what’s wrong with distributed transactions?
- How micro services solved all problems and turned a local problem into a much worse distributed problem
- Cascading failures and retry logic
- Essential complexity vs accidental complexity when integrating using RPC
- CAP theorem & Life beyond distributed transactions
- Introduction to messaging
- Messaging principles and terminology
- Message ordering and guarantees
- Messaging architectures
- Events deep dive
- Introduction to Event messages
- Data duplication using Events is a migration pattern, not a permanent solution
- When to choose Request/Response over Messaging
- How to handle the dual write problem?
- Process Manager/Saga/Outbox pattern/Event Sourcing pattern