feat: event store — persist domain events to Postgres event_log table via composite publisher
This commit is contained in:
@@ -22,8 +22,12 @@ pub async fn build_app(config: &Config) -> Result<Router> {
|
||||
adapters_nats::ensure_stream(&nats_client).await?;
|
||||
|
||||
let transport = adapters_nats::NatsTransport::new(nats_client);
|
||||
let event_publisher: Arc<dyn domain::ports::EventPublisher> =
|
||||
let nats_publisher: Arc<dyn domain::ports::EventPublisher> =
|
||||
Arc::new(event_transport::EventPublisherAdapter::new(transport));
|
||||
let event_store: Arc<dyn domain::ports::EventStore> =
|
||||
Arc::new(adapters_postgres::PostgresEventStore::new(pool.clone()));
|
||||
let event_publisher: Arc<dyn domain::ports::EventPublisher> =
|
||||
Arc::new(event_transport::CompositeEventPublisher::new(nats_publisher, event_store));
|
||||
|
||||
let storage_path = std::env::var("STORAGE_PATH").unwrap_or_else(|_| "./data/media".to_string());
|
||||
let file_storage: Arc<LocalFileStorage> = Arc::new(LocalFileStorage::new(&storage_path));
|
||||
|
||||
Reference in New Issue
Block a user