Назначение
Saga <SagaName> координирует cross-service process <process> без distributed transaction.
Участники
| Service | Responsibility | Owned State |
|---|
<service> | <role> | <state> |
State Machine
| From | To | Trigger | Condition | Side Effects |
|---|
<State> | <State> | <event/command> | <condition> | <effects> |
Commands И Events
| Direction | Contract | Owner | Idempotency |
|---|
| Consume | <event> | <service> | <key> |
| Send | <command/event> | <service> | <key> |
Transaction Boundaries
Каждый service выполняет только свою local transaction. Saga state, outbox messages, idempotency и audit сохраняются атомарно внутри owning service.
Compensation
| Failed Step | Compensation | Owner | Audit |
|---|
<step> | <command> | <service> | да/нет |
Timeout И Reconciliation
- Timeout:
<duration>.
- Retry policy:
<policy>.
- Reconciliation job:
<job>.
- Manual review trigger:
<condition>.
Observability
- Metrics: saga duration, stuck states, compensation count.
- Logs/traces: correlation id, saga id, causation id.
- Runbook:
<link>.
Обратные ссылки
Автоссылки: где используется этот документ.