Files
amethyst/geode/plans
Vitor Pamplona b0ad540453 refactor(geode): split config into StaticConfig + RuntimeConfig with seeding
Rename RelayConfig → StaticConfig and the persistence/RelayStateStore →
config/RuntimeConfig so the two configuration tiers — boot-time TOML
versus operator-mutable runtime state — are obvious from the class
names. The `persistence/` package is gone; everything related to config
lives in `config/`.

For overlapping fields (NIP-11 info doc, pubkey / kind allow-deny
lists), StaticConfig now seeds RuntimeConfig on first boot via the new
RuntimeConfig(seed = …) constructor and an AuthorizationSeed type. The
runtime file wins from then on: later edits to [authorization] in the
TOML are ignored once an admin RPC has written the snapshot. As a
consequence, KindAllowDenyPolicy and PubkeyAllowDenyPolicy are no
longer stacked in geode's policy chain — BanListPolicy already reads
the same lists from the BanStore, and double-stacking would silently
diverge after the first admin mutation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 15:51:19 -04: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.