Expand description
Trait boundary between engine-core and the runtime.
This module defines the traits that separate the pure engine logic from the runtime (tokio, channels, WAL, NATS, persistence). The engine emits events and journal entries through these traits without knowing anything about the transport or storage backend.
The hypercall crate provides production implementations backed by:
tokio::sync::broadcastchannels forEventSink- WAL files with CRC validation for
JournalWriter - NATS for
CommandPublisher
In tests, these can be stubbed with simple in-memory implementations
(e.g., a Vec<EngineEvent> behind a mutex).
This module also defines the data types that flow through these traits:
EngineEvent, JournalEntry, and JournalError.
Structs§
- Journal
Entry - A journal entry representing a single command for WAL persistence.
Enums§
- Engine
Event - Events emitted by the engine after command processing.
- Journal
Error - Error type for journal write failures.
Traits§
- Command
Publisher - Publisher for command replication to standby instances.
- Event
Sink - Sink for engine events emitted after command processing.
- Journal
Writer - Durable journal writer for crash recovery.