Pattern (also referred to as a distributed service manager / process manager) used to deal with reactor synchronization errors, especially with external systems lacking idempotency. When a request to an external system times out, a saga periodically checks whether the action took effect; if so it sources an event, otherwise it retries or escalates (e.g. emails a human to phone the external party). Davydov frames a saga as a business transaction (e.g. booking a business trip with hotel, flights, cars) that can be implemented as a state machine and must roll back preceding steps on failure. Built specifically to manage error cases.