Distributed Reliability¶
Purpose¶
Make partial failure, delivery, duplication, ordering, timeout, and convergence explicit whenever work crosses a failure boundary. A retry MUST NOT be added until the effect of duplicate execution is known.
Decision procedure¶
- Identify failure boundaries, authoritative owners, operations, and externally visible effects.
- State delivery semantics and what acknowledgement proves.
- Define stable operation identity and duplicate handling where redelivery is possible.
- Bound timeouts, retries, queues, fan-out, and retention.
- Define ordering scope, stale-read expectations, conflicts, convergence, and repair.
- Preserve durable handoff between local state and remote effects where required.
- Provide observability that can distinguish delay, duplication, rejection, and loss.
- Exercise recovery from interruption at every consequential boundary.
Modes¶
synchronous-transactional¶
Prefer one bounded request and local transaction when it meets the actual failure model. Do not add asynchronous delivery for hypothetical scale.
idempotent-ingress¶
Accept duplicate delivery safely using durable identity and atomic effect recording. A check followed by an unguarded effect is not idempotency.
eventually-consistent¶
Define authoritative state, ordering scope, staleness, merge or conflict rules, convergence, and repair. Immediate consistency MUST NOT be implied.
high-reliability¶
Add durable handoff, containment, bounded failover, recovery evidence, and service-level observability from an explicit failure model.
Conflict decisions¶
- Retry versus duplication: retry only when the operation is idempotent, deduplicated atomically, or explicitly compensatable.
- Availability versus consistency: document the degraded behavior, authoritative owner, and repair path rather than claiming both without trade-offs.
- Reliability versus simplicity: use the simplest mechanism that satisfies the verified failure and recovery targets.
Outputs and review¶
Produce a failure model, ownership map, delivery and acknowledgement semantics, retry policy, ordering and convergence rules, repair procedure, and observability signals.
See decision examples. Evaluations: reliability-local-transaction, reliability-idempotent-webhook, and reliability-unbounded-retry.
Non-goals¶
This Skill does not promise exactly-once execution, prescribe messaging, or require distribution where a local transaction suffices.