Operational Runbooks¶
Use the procedure that matches the failed boundary. Increasing a timeout before identifying that boundary can hide a stale credential, missing route or lost ownership.
A service is not discovered¶
- Confirm the exporter is admitted and has a live record in the intended context.
- Confirm the client uses multicast or network bootstrap, rather than an isolated embedded registry.
- For multicast, check group/interface/port and network forwarding. For bootstrap, check seed URI, reachability, mutual TLS and context allowlist.
- Inspect record signature/freshness/lease rejection and query capacity/deadline diagnostics.
- Verify invocation reachability separately after discovery succeeds.
Do not disable record verification to make a rejected record appear healthy. A stale lease or replayed publication needs a valid fresh publisher update.
Requests time out while the instance appears alive¶
Inspect active physical work, bulkhead/admission usage and the downstream resource. Determine whether the call entered application code. A qualified predispatch failure may permit policy-controlled retry; an uncertain entered effect requires its idempotency/reconciliation contract. Do not replay a non-idempotent operation with a fresh identity merely because its reply was lost.
A resource cannot obtain quorum¶
Inspect actual authorized voters, peer reachability, group identity, storage health and TLS/peer credentials. Discovery of another process does not authorize it to vote. Keep minority mutations unavailable while quorum is absent. Do not copy a live directory, reuse a node identity concurrently or force stale state into the voting set.
Lease, receipt or epoch is stale¶
Stop the obsolete worker's admission and inspect the current authority. A stale queue receipt cannot ACK a new delivery; an old fence cannot authorize a protected write; an old partition epoch cannot follow a handoff automatically. Let the documented takeover/handoff path establish new authority. Preserve the original logical operation identity where that path requires it.
A message is in the dead-letter queue¶
Inspect safe delivery metadata and the handler failure category. Repair the actual cause, check the authorized redrive policy and use the explicit administrative redrive operation. A @DeadLetterHandler callback is observational; it is not permission to silently remove or acknowledge messages. Record the redrive decision and bound any retry.
A saga reports UNKNOWN¶
Identify whether uncertainty concerns a forward step or its inverse. Gather trustworthy external evidence under the authorized reconciliation procedure. Submit a version-checked decision; a stale decision must not resolve a newer step or compensation. Do not label a missing compensation as successful undo.
Disk or retained-state quota is exhausted¶
Stop increasing admission, identify which retained identities/snapshots/staging objects consume capacity, and preserve the committed state. Follow an explicit retention or offline maintenance policy. Deleting deduplication receipts to make room can turn a safe retry into a repeated effect.
If restoration is required, use backup and restore. For prevention, review capacity planning.