Skip to main content
cd ../lexicon
sys/docs/lexicon/consistent-core.md
Lexicon

Consistent Core

Difficulty: Advanced
3 min read

In plain English

Plain definition

A small strongly-consistent quorum cluster that acts as the authoritative source for critical coordination metadata, consulted or watched by a much larger, loosely-consistent set of nodes.

A Consistent Core decouples the consensus problem from the scale problem. Instead of running a single Raft or Paxos group across an entire fleet, you isolate a small, dedicated quorum (etcd, ZooKeeper, Consul’s Raft ring, Kafka’s KRaft controller quorum) whose sole job is to serialize writes to a narrow set of authoritative facts: leader identity, partition assignments, lease ownership, schema versions, feature flags. Every other component in the system — API servers, brokers, kubelets, data-plane proxies — treats the core as the single source of truth and either polls or, more commonly, watches it for changes, then reconciles local state asynchronously.

The pattern only works because the core’s write volume is kept orders of magnitude smaller than the system’s total data volume. Raft/Paxos throughput is bounded by leader-serialized log replication and disk fsync latency, so a consistent core rarely scales past low tens of thousands of writes per second regardless of node count — adding nodes increases fault tolerance, not write throughput. This is why Kubernetes stores cluster state metadata in etcd but never routes application traffic through it, and why Kafka’s KRaft controller quorum manages partition-to-broker assignment metadata while actual message throughput flows through the separate broker data plane entirely outside consensus.

Edge cases cluster around the boundary between core and periphery. A node that has been elected leader by the core but is now network-partitioned from it can continue believing it holds a lease past expiry unless leases carry epoch numbers that peripheral nodes validate on every privileged operation — this is why consistent cores are almost always paired with lease-based coordination and monotonic epoch/term counters. Another failure mode is core-availability coupling: if the periphery cannot make forward progress without a live quorum read (e.g., a scheduler that blocks on etcd for every placement decision), the entire system’s availability degrades to the core’s availability, defeating the purpose of decoupling scale from consistency. Well-designed peripheries cache core state locally and operate on stale-but-bounded snapshots, only falling back to a blocking core read when staleness would violate correctness (e.g., before granting a new lease).

  • Sizing: core quorum size trades fault tolerance against write latency (each additional voter adds replication round-trips).
  • Bootstrapping: the core itself needs an out-of-band mechanism (static config, DNS SRV, cloud metadata) to discover its own peers before consensus can begin.
  • Data placement: only metadata belongs in the core — storing bulk application data violates the throughput assumption and turns the core into a global bottleneck.
  • Blast radius: core quorum loss (majority down) freezes all coordination even though data-plane nodes may still be technically reachable.

The architectural payoff of a Consistent Core is that it lets engineers reason about correctness in one small, provably-correct subsystem while letting the rest of the system scale horizontally under relaxed guarantees like eventual consistency or read-your-writes. Recognizing which facts truly require linearizable ordering — and ruthlessly keeping everything else out of the core — is the central design skill; conflating the core with a general-purpose database is the most common way this pattern degrades into a systemic single point of contention.