امنیت، هویت، استقرار و تابآوری · فصل ۷ — Dependency، Contract، Event و Network Failure · 117
Network Partition
Reproduce a bounded partition with asymmetric reachability, distinguish timeout from service failure and unknown remote outcome, select finite timeout/retry/degradation containment, and verify recovery convergence after connectivity returns. میتواند failure family «Network Partition» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.
Lesson summary
Reproduce a bounded partition with asymmetric reachability, distinguish timeout from service failure and unknown remote outcome, select finite timeout/retry/degradation containment, and verify recovery convergence after connectivity returns.
میتواند failure family «Network Partition» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.
This lesson produces
میتواند failure family «Network Partition» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.
Who it is for
Foundation
Use a guided boundary timeline/matrix and one explicit ambiguity repair.
Repair
Re-run only the failed evidence dimension with a smaller deterministic cut point.
Experienced
Start from ambiguous observations; require competing hypotheses, negative evidence and transfer.
Prerequisites
1. A timeout is an observation, not a causal verdict
In a distributed system, a caller can time out because the request never arrived, because it arrived but the response did not return, or because the remote operation completed while its result became unknowable to the caller. AWS explicitly discusses this UNKNOWN outcome boundary for network operations. [AWS-DISTSYS] The first rule of this lesson is therefore: do not equate timeout with remote failure or remote non-execution.
2. Model a partition as a reachability matrix
Instead of one vague label such as “the network is down,” record directions separately: client→service, service→client, service A→service B, and probe paths. A partition may be symmetric or asymmetric. A can observe B while B cannot return a response to A. The record must preserve direction for every observation.
3. Remote outcome may legitimately remain UNKNOWN
If the caller sent a write and timed out, you cannot conclude that the write did not happen without a ledger, idempotency key, remote trace, or equivalent evidence. The AWS Builders’ Library describes this exact uncertainty boundary. [AWS-DISTSYS] In this lesson, UNKNOWN is a valid evidence state, not analytical failure.
4. Separate timeout, deadline, and retry budget
A timeout bounds one attempt; a deadline bounds the total operation; a retry budget bounds the number or cost of further attempts. If these three are designed independently, a small outage can grow into queueing, thread exhaustion, or cascading load.
5. Retry is useful, but it can amplify an outage
AWS recommends bounded retries with backoff and jitter because excessive retries can increase load on an already unhealthy dependency. [AWS-RETRY] When an operation has side effects, retry without idempotency can duplicate those effects. “Timed out, so retry” is not a complete policy.
6. Finite retry and circuit breaking are containment boundaries
Azure guidance likewise recommends timeouts, finite retry strategies, and circuit breaking for persistent failure. [AZURE-TRANSIENT] A circuit breaker does not guarantee availability or correctness; it is a containment mechanism that prevents unbounded attempts and gives a dependency room to recover.
7. Do not confuse service failure with network partition
If reachability is healthy and the service returns a definite 5xx or application error, evidence points more directly to service failure than partition. This lesson includes a negative control so the learner must distinguish “the request failed” from the actual failure family.
8. Asymmetric partition is easy to hide behind green dashboards
A health check from A can be green while the return path or B→A path is broken. An aggregate metric cannot prove direction. Partition diagnosis therefore needs at least two independent directional observations.
9. Degraded mode needs an explicit write boundary
During a partition, read-only degraded mode may be acceptable, while stale reads or writes against an old replica can create inconsistency. If the consistency requirement is unknown, do not silently allow writes. Containment must state which operations fail fast, queue, degrade, or become write-fenced.
10. Recovery is not complete when ping starts working
Connectivity restoration is only the beginning of recovery. You still need recovery probes, state reconciliation, and convergence evidence. A stale replica can be reachable but unsafe. Closing the incident before convergence confuses transport recovery with application recovery.
11. Measure retry amplification
The fixture makes retry budget explicit. If many callers time out together and retry in sync, load can multiply. Backoff and jitter are intended to reduce that correlation. [AWS-RETRY] The record must capture retry count, budget exhaustion, and breaker/degraded state.
12. Actually reject an alternative hypothesis
At least one plausible alternative must be rejected with negative evidence: service crash, application rejection, local client failure, or stale replica without a partition. Writing “probably the network” is insufficient. Classification must connect to directional reachability and remote-effect evidence.
13. Closure requires independent convergence proof
After connectivity returns, do not merely rerun the same timed-out request. Recheck reachability, verify remote effect or ledger state, reconcile stale state, and then execute an independent request. If convergence is not proven, retain RECOVERY_NOT_CONVERGED or OPEN.
14. Lab: eight fixtures and 64 assertions
The lab is fully local and deterministic. Eight cases cover healthy baseline, symmetric request drop, response loss with remote effect, one-way partition, deadline delay, retry-budget exhaustion, adjacent service failure, incomplete evidence, and transfer with response loss plus stale replica state. The hidden evaluator checks eight outputs per case for 64 assertions total.
15. Exit checklist and claim boundary
To pass, you must build a reachability matrix; separate timeout from remote outcome; preserve UNKNOWN; bound retry/deadline/breaker behavior; reject one alternative; distinguish restoration from convergence; rebuild the transfer case from new evidence; and state explicitly that success in this fixture proves only the bounded reasoning exercised here, not the behavior of every network or distributed system.
Assessment
There is no answer key in this lesson pack; answer it yourself and mark honestly. "Needs review" sends the lesson to your review queue.
FLR-007-AF1 formative
FLR-007-AF2 formative
FLR-007-AF3 formative
FLR-007-AS1 summative
FLR-007-AS2 transfer
Assessment rubric
A passing submission must: (1) preserve directional reachability evidence; (2) keep remote effect UNKNOWN when no oracle exists; (3) reject at least one adjacent hypothesis with negative evidence; (4) use finite timeout/retry/degradation containment; (5) distinguish transport restoration from application-state convergence; (6) use an independent recovery oracle; and (7) rebuild the transfer fixture from fresh evidence.
A submission fails if one timeout is generalized into remote failure/non-execution, if retries are unbounded, or if connectivity restoration is treated as proof of state convergence.
References & freshness
Case studies
Lab files
Implement a bounded evaluate(case) function over eight synthetic cases. Treat direction, timeout/deadline, remote effect, retry budget, containment, restoration, and convergence as separate evidence dimensions.
Do not infer remote failure or non-execution from timeout alone. Preserve OPEN_BOUNDARY_UNRESOLVED when evidence is incomplete. The transfer case deliberately restores connectivity while leaving one replica stale, so closure requires convergence evidence rather than a green transport probe.
The lab is fully local and deterministic; no production network, credential, customer data, destructive action, or external target is involved.
Lesson media & slides
Teaching files (download)