Implement the read primitives for the hot segment, against the storage backend used by the writer (#659).
Scope:
Lookup(termKey) → bitmap of event IDs (returns ErrTermNotFound on miss).
FetchEvents([]eventID) → iter of decoded payloads.
All() → iter over every event in the chunk in event-id order.
- Metadata accessors:
ChunkID, EventCount, Offsets.
- Concurrency: many concurrent readers; writer holds an exclusive mutex during ingest.
Out of scope (separate issues):
Add tests covering: lookup hits and misses, ordered streaming of all events, fetch-by-id round-trips, and concurrent-read correctness.
Implement the read primitives for the hot segment, against the storage backend used by the writer (#659).
Scope:
Lookup(termKey) → bitmapof event IDs (returnsErrTermNotFoundon miss).FetchEvents([]eventID) → iterof decoded payloads.All() → iterover every event in the chunk in event-id order.ChunkID,EventCount,Offsets.Out of scope (separate issues):
Add tests covering: lookup hits and misses, ordered streaming of all events, fetch-by-id round-trips, and concurrent-read correctness.