DBRaven
Failure Mode · network

Network Partition

critical

Summary

A subset of distributed system nodes can reach each other but not another subset, splitting the cluster into groups that disagree about the current state. Partition tolerance is not optional for a system spanning more than one node; the real choice a partition forces is between consistency and availability for the duration it lasts.

Description

A partition differs from a total outage. Some communication still works: the network has split into two or more groups that can talk within a group but not across groups. A node on one side cannot tell whether a node on the other side is dead or just unreachable, and that ambiguity is the entire problem: any decision made under a partition might be wrong once it heals.

The CAP theorem is often stated as picking two of three properties, but that framing invites a mistake: partition tolerance is not a design choice you can decline for a system with more than one node, because partitions happen regardless of what you configure. The theorem's real content is narrower and sharper: while a partition is in progress, you choose between linearizable consistency and availability for the side of the partition that cannot reach a quorum. Once the partition heals, the question resolves and both sides can be consistent and available again.

Quorum makes that choice mechanical. A cluster of N nodes has a quorum of at least N/2 + 1 nodes, chosen so that any two quorums must overlap by at least one node; this is what makes it impossible for two disjoint groups to both hold a quorum at the same time. CP systems (etcd, ZooKeeper, CockroachDB, Raft- and Paxos-based systems) require a quorum to elect a leader and to commit a write. The majority-side partition keeps a quorum and keeps operating; the minority side cannot reach one, so it refuses writes and, if configured correctly, refuses to serve reads that must be current. This is what makes Raft-committed writes linearizable: no write is acknowledged without quorum agreement, and no minority node can independently believe it holds the latest state. Reads only inherit that guarantee if they are also routed through the leader or use a lease or read-index mechanism; a read served locally by a stale follower is not linearizable even in an otherwise-CP system, which is the read-freshness gap operators most often get wrong.

AP systems such as Dynamo-style stores choose availability by accepting reads and writes from reachable replicas, often using tunable read/write quorums and, in some systems, sloppy quorum and hinted handoff. During a partition, writes can be accepted on sides that cannot coordinate with each other, so replicas may diverge and later require conflict resolution (last-write-wins by timestamp, vector clocks, CRDTs), which can silently drop a write that lost the resolution.

The specific way a partition destroys correctness when leader election has no fencing safeguard, both sides electing their own leader and both accepting writes, is its own failure mode, covered in split_brain; that entity is the concrete data-loss consequence this one sets up.

Cloud occurrence: AWS availability zone network degradation is the most common real-world trigger. Multi-AZ clusters must be designed to tolerate inter-AZ partition as a routine event, not an edge case. Also triggered by aggressive security group rules, subnet routing changes, NAT gateway failures, and DNS resolution failures that make live nodes appear unreachable to cluster membership.

Characteristics

Propagationfan out
Time to detectConnection refused or timeout errors surface immediately, within seconds. Cluster coordination systems detect node unreachability within their configured failure detection window (typically 5 to 30 seconds). Application-level health checks typically catch it within 10 to 60 seconds.
Blast radiusEvery cross-partition service call fails for the duration. CP systems stop accepting writes (and current reads) from the minority side; AP systems keep serving but accumulate divergence that must be resolved later. Coordination services (etcd, ZooKeeper) losing quorum during a partition cascades to every service that depends on them for configuration or leader election, turning a network event into a wide application outage even for services with no direct network problem of their own.

Triggers

  • ·AWS availability zone network degradation or inter-AZ routing failure
  • ·Firewall rule change blocking inter-node communication
  • ·Network equipment failure on a cross-datacenter link
  • ·DNS resolution failure causing live nodes to appear unreachable
  • ·Kubernetes network policy misconfiguration blocking cluster traffic

Detection Signals

error rate spikereplication lagalert

Mitigation Strategies

Choose CP or AP deliberately per data store, not by inherited defaultcomplexity: high

Coordination state and financial data need CP; user activity feeds and analytics can tolerate AP. The cost of CP is minority-side unavailability during a partition; the cost of AP is divergence that must be resolved after. Pick per data store based on which cost is acceptable for that data, rather than accepting whatever a chosen technology defaults to.

Route writes to a single AZ and reads to any AZcomplexity: medium

Send writes only to the primary AZ; serve reads from any AZ. On partition, the primary AZ keeps accepting writes at the cost of reads from the isolated AZ going stale or unavailable. AZ-aware load balancing (Kubernetes topology spread constraints) supports this routing.

Use quorum-based consensus (Raft or Paxos) for anything requiring a single leaderpreventscomplexity: low

A quorum-based consensus system can only elect a leader with majority agreement, so a partition minority cannot independently elect one and stops accepting writes. etcd, CockroachDB, and Kafka in KRaft mode implement this correctly; the specific failure this prevents, and what happens without it, is detailed in split_brain.

Test partition behavior with chaos engineeringcomplexity: medium

Inject network partitions in staging with tc netem or a chaos engineering tool (Chaos Monkey, Chaos Mesh) and verify the system behaves as designed: CP systems stop writes on the minority side, AP systems converge correctly once the partition heals.

Recovery Steps

  1. 1.Identify partition scope: which nodes cannot reach which? Check network connectivity between AZs
  2. 2.Check cluster membership (etcd member list, Kafka broker metadata): do members see each other?
  3. 3.For CP systems: confirm the majority side is functional; the minority will stay unavailable until the partition heals
  4. 4.For AP systems: identify whether writes occurred on both sides and plan conflict resolution once the partition heals
  5. 5.Escalate to network or infrastructure teams for partition resolution; the application cannot self-heal a network problem
  6. 6.After the partition heals, verify replication lag returns to zero and cluster membership is consistent

Estimated recovery time: Partition resolution depends on the underlying network issue. Application recovery once the partition heals is typically automatic within seconds for CP systems (Raft re-establishes its leader) and minutes for AP systems (gossip protocol convergence). Manual conflict reconciliation for AP systems with diverged writes can take hours.

Affected Systems

Patterns

leader electiontwo phase commitsaga pattern

Technologies

kafkacassandrapostgresql

Basis

Foundational distributed-systems failure mode; the CAP theorem's precise scope (a choice during a partition, not a permanent three-way tradeoff), quorum overlap mathematics, and the linearizability/read-freshness distinction are established results in the distributed systems literature (Gilbert and Lynch's CAP proof; Raft and Paxos consensus papers).

Run This Failure

Blast radius analysis for this failure mode within each scenario that carries it.

Used In Architecture Scenarios