Build a distributed search engine (Elasticsearch / OpenSearch style) (12 scenes)
Scene 11 · Operational sharp edges
Refresh storm, mapping explosion, hot shard, deep pagination — the four most expensive Elasticsearch outages are misuses of knobs the earlier scenes already introduced.
Previously

Approximations are mathematical. The next class of failures is operational — same cluster, same algorithms, scale or cardinality has just crept past what one knob's default was set for.

Scene 11
Operational sharp edges
Diagram
Cluster pill at the top reflects the worst-case shard: green = every primary and replica assigned, yellow = some replicas missing (operational), red = some primary unallocated. Six nodes laid out as cards with shard count, heap %, indexing/sec, and search/sec, each tagged with an ILM tier (hot → warm → cold → frozen). On the right, four incident cards — each footer points back at the scene that introduced the underlying mechanism.
GREENevery primary + replica assignedNODES · 6N1 · hothotshards28heap52%index/s8k/ssearch/s1.2k/sN2 · hothotshards30heap55%index/s8k/ssearch/s1.2k/sN3 · hothotshards26heap50%index/s8k/ssearch/s1.2k/sN4 · warmwarmshards22heap38%index/s1k/ssearch/s0.3k/sN5 · warmwarmshards24heap40%index/s1k/ssearch/s0.3k/sN6 · coldcoldshards18heap32%index/ssearch/s0.05k/sINCIDENT CARDSRefresh stormscene 4 · refresh / flush / translogMapping explosionhigh-cardinality dynamic mapping (corpus)Hot shardscene 5 · hash(routing) mod NDeep paginationscene 7 · scatter, reduce, fetch
Steady state: 3 hot nodes serving live indices, 2 warm nodes holding 30-day-old data, 1 cold node holding searchable snapshots. Status is GREEN — every primary and every replica is assigned. ILM (Index Lifecycle Management) ages indices hot → warm → cold → frozen → deleted on a 90-day schedule.