Files
amethyst/geode/plans
Claude 6f8e7bb520 docs(geode): update connection-scaling plan to reflect what shipped
Marks Sketches A and B done, with a note that A took the simpler
Channel.UNLIMITED + AtomicInteger cap path the original Risks section
called out, sidestepping the channel-swap that the plan first
sketched.

Records that the streaming-filter slice of Sketch C landed in Quartz,
and that the larger envelope-streaming work the plan called out is
unnecessary because MessageDeserializer / CommandDeserializer /
EventDeserializer were already streaming — only the filter sub-object
went through readTree.

Adds the verification benchmarks (connectionsHeldOpen10k,
connectionsHeldOpenWithFanout) to the verification section, with a
correction that what's measured is JVM heap not OS RSS.

Carries forward the not-done items (fan-out de-duplication,
filter-matching index, Netty engine) into the open-work section,
pointing at live-broadcast-fanout-index.md for the highest-leverage
remaining work.
2026-05-07 21:07:03 +00:00
..

geode plans

Performance-focused design docs for future work. Each file is a self-contained sketch — problem statement, observed numbers, proposed fix, how to verify, risks. None of these are committed work; they're the queue.

Ordered roughly by expected impact:

Plan Headline gain
2026-05-07-event-ingestion-batching.md 510× write EPS via SQLite group commit + ingest pipelining
2026-05-07-live-broadcast-fanout-index.md >10× fanout speedup at >2 000 subscribers
2026-05-07-connection-scaling.md 2 000 → 10 000+ concurrent connections
2026-05-07-negentropy-large-corpus.md 25× lower memory + faster NEG-OPEN on M-event corpora

Verification target for each plan is a new method on geode.perf.LoadBenchmark (gated by -DrunLoadBenchmark=true) so regressions show up in the regular CI matrix once they're enabled.