Перейти к основному содержимому

Назначение

Saga <SagaName> координирует cross-service process <process> без distributed transaction.

Участники

ServiceResponsibilityOwned State
<service><role><state>

State Machine

FromToTriggerConditionSide Effects
<State><State><event/command><condition><effects>

Commands И Events

DirectionContractOwnerIdempotency
Consume<event><service><key>
Send<command/event><service><key>

Transaction Boundaries

Каждый service выполняет только свою local transaction. Saga state, outbox messages, idempotency и audit сохраняются атомарно внутри owning service.

Compensation

Failed StepCompensationOwnerAudit
<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>.

Обратные ссылки

Автоссылки: где используется этот документ.