1pub mod event;
2pub mod aggregate;
3pub mod store;
4pub mod error;
5pub mod proto;
6pub mod streaming;
7pub mod snapshot;
8pub mod security;
9pub mod tenancy;
10pub mod performance;
11
12#[cfg(feature = "observability")]
13pub mod observability;
14
15pub use event::{Event, EventData, EventId, EventMetadata};
16pub use aggregate::{Aggregate, AggregateId, AggregateVersion};
17pub use store::{EventStore, EventStoreConfig, EventStoreImpl, create_event_store};
18pub use error::{EventualiError, Result};
19pub use proto::ProtoSerializer;
20pub use streaming::{
21 EventStreamer, EventStreamReceiver, StreamEvent, Subscription, SubscriptionBuilder,
22 InMemoryEventStreamer, EventStreamProcessor, Projection, ProjectionProcessor,
23 SagaHandler, SagaProcessor
24};
25pub use snapshot::{
26 AggregateSnapshot, SnapshotStore, SnapshotService, SnapshotConfig, SnapshotCompression,
27 SnapshotMetadata, SqliteSnapshotStore
28};
29pub use security::{
30 EventEncryption, KeyManager, EncryptionKey, EncryptedEventData, EncryptionAlgorithm
31};
32pub use tenancy::{
33 TenantId, TenantInfo, TenantConfig, TenantMetadata, TenantIsolation,
34 IsolatedEventStore, TenantScope, TenantQuota, ResourceType,
35 TenantManager, TenantOperations, TenantAwareEventStorage,
36 TenantStorageMetrics, TenantEventBatch, TenantScopedProjection,
37 TenantProjectionManager, TenantProjectionRegistry, TenantProjectionMetrics
38};
39pub use performance::{
40 ConnectionPool, PoolConfig, PoolStats,
41 WalConfig, WalOptimizer, WalStats, WalSynchronousMode, WalJournalMode,
42 TempStoreMode, AutoVacuumMode, benchmark_wal_configurations
43};
44
45#[cfg(feature = "observability")]
46pub use observability::{
47 ObservabilityService, ObservabilityServiceBuilder, ObservabilityConfig,
48 TelemetryProvider, TracingService, TraceContext, EventTrace,
49 MetricsCollector, PrometheusExporter, EventMetrics, PerformanceMetrics,
50 StructuredLogger, LogLevel, LogContext, CorrelationLogger,
51 CorrelationId, CorrelationContext, CorrelationTracker, generate_correlation_id
52};
53
54#[cfg(feature = "postgres")]
56pub use store::postgres::PostgreSQLBackend;
57
58#[cfg(feature = "sqlite")]
59pub use store::sqlite::SQLiteBackend;
60
61#[cfg(test)]
62mod tests {
63 #[test]
64 fn it_works() {
65 assert_eq!(2 + 2, 4);
66 }
67}