Skip to main content

Module event_handler

Module event_handler 

Source
Expand description

Event handler — gift wrap receive, unwrap, process, commit pipeline.

Two-phase architecture:

  • Phase 1 (prepare_event): Parallel-safe — dedup, unwrap, process_rumor
  • Phase 2 (commit_prepared_event): Sequential — save DB, update STATE, emit

Platform-specific behavior (notifications) handled by InboundEventHandler trait.

Structs§

BatchingPersist
Wraps any handler for a bulk-sync drain loop: every callback delegates to the inner handler, but committed messages BUFFER here instead of saving one transaction each — the loop calls BatchingPersist::flush periodically and at stream end to land them in batched transactions (save_messages_batch_multi).
LiveOnly
For catch-up syncs: forwards to inner only what is live rather than history. Mini App peer signals always: a signal is live state, and a sync that opens one ledgers its wrapper, so the live subscription will never deliver it again. With from, also DMs and files sent since that moment: sent while the sync ran, they can reach us through it alone.
NoOpEventHandler
No-op handler for CLI/tests.

Enums§

PreparedEvent
Result of Phase 1 (prepare_event) — everything needed for sequential commit.

Constants§

DIRECT_INVITE_LIFETIME_SECS
Phase 2: commit a prepared event (sequential — not parallel-safe). Saves to DB, updates STATE, emits to frontend, calls handler hooks. Returns true if a new displayable message was committed.
UNWRAP_BATCH
Wraps opened per vault read on bulk paths. It bounds how long the key stays materialised: two ECDHs per wrap, about 1.5 ms per batch on a desktop core.

Traits§

InboundEventHandler
Platform-specific callbacks for inbound event processing.

Functions§

commit_prepared_event
prepare_event
Phase 1: Prepare an event for commit (parallel-safe, no state mutation).
prepare_events
prepare_event for many events, one result per event in order. The wraps that pass dedup are opened together, under one vault read for a local key.
process_event
Process a single event through the full pipeline (prepare + commit).