Retry + circuit breaker
When a dependency fails temporarily, use bounded retries with spacing and stop further calls during a sustained failure. Watch for retry storms across service layers.
Transactional outbox
When a state change and event publication must stay consistent, store the event in the database in the same transaction and publish it with a separate process. Consumers still need to handle duplicates.
Rule: name the failure scenario and quality requirement before choosing a pattern. Each pattern brings operational cost and new states to handle.
Discuss this article
Share a constructive observation or an anonymised example. Comments are checked by AI before publication. Uncertain cases go to the moderator.