Distribute the work.
Not the confusion.
Services, APIs and events with clear responsibilities. I think about contracts, consistency and coordination so the system stays understandable as its parts grow or fail.
- Idempotency
- Messaging & events
- Retries & timeouts
- Durable workflows
- API contracts