Files
amethyst/geode/plans
Vitor Pamplona 9f7deee8f3 refactor(geode): rename relay classes for clarity, move test helpers off public API
Renames in the geode module to make naming honest:
- Relay -> RelayEngine (the transport-agnostic core)
- LocalRelayServer -> KtorRelay (Ktor/CIO transport; defaults to 127.0.0.1
  but supports public deployment, so "Local" was misleading)
- RelayHub -> InProcessRelays (URL-keyed registry that doubles as a
  WebsocketBuilder for in-JVM tests; "Hub"/"Pool" implied substitutable
  resources, but each URL maps to a distinct relay)

Also moves the test-only helpers `preload` and `publish` out of
RelayEngine and into a testFixtures extension file. As part of that,
`publish` now waits for the relay's OK reply before returning so that
publish-then-subscribe is deterministic — previously the fire-and-forget
submit let a subscription register after publish returned but before the
ingest queue fanned out, causing ephemeral kinds (not persisted) to leak
to late subscribers. Fixes the flaky
`Nip01ComplianceTest.ephemeralEventIsNotStoredAndDoesNotShowOnFollowupReq`.

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