eventuali_core/
lib.rs

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// Re-export specific backend implementations
55#[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}