Skip to main content

Crate azoth_core

Crate azoth_core 

Source
Expand description

Axiom Core: Traits and types for the axiom storage subsystem

This crate defines the core abstractions for a TEE-safe, high-performance storage layer with:

  • Canonical store (LMDB): Transactional KV + append-only event log
  • Projection store (SQLite): Queryable SQL tables derived from events
  • Projector: Consumes events and updates SQL projections
  • Backup/restore: Deterministic snapshotting with manifest

Key features:

  • Three-phase transactions: Async preflight → Fast sync commit → Async projection
  • Stripe locking: Parallel preflight validation for non-conflicting keys
  • Pausable ingestion: Safe backups with no partial state
  • Deterministic replay: Any projection can be rebuilt from events

Re-exports§

pub use config::CanonicalConfig;
pub use config::ProjectionConfig;
pub use config::ProjectorConfig;
pub use config::ReadPoolConfig;
pub use error::AzothError;
pub use error::Result;
pub use event_log::EventLog;
pub use event_log::EventLogIterator;
pub use event_log::EventLogStats;
pub use lock_manager::LockManager;
pub use traits::CanonicalReadTxn;
pub use traits::CanonicalStore;
pub use traits::CanonicalTxn;
pub use traits::DecodedEvent;
pub use traits::EventApplier;
pub use traits::EventDecoder;
pub use traits::EventIter;
pub use traits::PreflightResult;
pub use traits::ProjectionStore;
pub use traits::ProjectionTxn;
pub use types::BackupInfo;
pub use types::BackupManifest;
pub use types::CanonicalMeta;
pub use types::CommitInfo;
pub use types::EventBytes;
pub use types::EventId;

Modules§

config
error
event_log
Event log trait and types
lock_manager
Stripe-based lock manager with deadlock prevention
traits
types