Saga pattern
How to keep data consistent across services without two-phase commit using choreography and orchestration sagas, compensating actions and failure handling, with a Java example.
Outbox and idempotency
Solve the dual-write problem with the transactional outbox pattern and make consumers and APIs idempotent so at-least-once delivery is safe, with Spring Boot examples.
CQRS and event sourcing
Separate reads from writes with CQRS, store state as a sequence of events with event sourcing, and understand when these patterns are worth their complexity.