Skip to content

PATTERN Cited by 1 source

Coordinator-worker split

A distributed systems pattern where a long-running orchestration task is split between a coordinator (single leader, owns global lifecycle) and workers (one per partition/shard, do local data work). Communication typically flows downward through shared metadata (cluster state, ZooKeeper, etcd) and upward through direct RPC or transport actions.

Structure

Coordinator (leader node)
├── Tracks global phase (initializing → backfilling → converging → cutting over)
├── Makes global decisions (when to write-block, when to swap)
└── Listens for worker progress reports

Workers (data nodes, one per shard/partition)
├── Do local computation (backfill, replay, compaction)
├── Report progress + transitions to coordinator
└── React to phase changes published by coordinator

Why Not External Orchestration?

In AOSC's case, the primitives needed (Engine.Searcher, changes snapshot, retention leases) are shard-local — only accessible on the node hosting that shard's primary. Streaming data externally would be slow and fragile. Running the work in-cluster, colocated with shards, avoids network serialization of the full dataset.

Seen In

(Source: sources/2026-07-24-atlassian-online-index-migration-and-shard-scaling-in-opensearch-with-aosc)

Last updated · 596 distilled / 1,814 read