replace tokio::broadcast event bus with SQLite-backed event queue (ADR-0003)
- DomainEvent: add Serialize/Deserialize - EventConsumer port: poll_next/ack/nack replacing recv() - EventEnvelope: wraps event with id/retry_count/created_at - SqliteEventPublisher/SqliteEventConsumer: INSERT/poll/DLQ - migration: event_queue + dead_letter_queue tables - InMemoryEventBus: combined publisher+consumer test double - NoopEventConsumer: test stub - webhook_consumer: polls EventConsumer instead of broadcast::Receiver - presentation+mcp wiring: create from SqlitePool
This commit is contained in:
@@ -44,8 +44,12 @@ async fn main() -> anyhow::Result<()> {
|
||||
|
||||
let provider_registry = build_provider_registry().await;
|
||||
|
||||
let event_bus = Arc::new(adapter_event_publisher::ChannelEventBus::new(64));
|
||||
let event_publisher: Arc<dyn domain::ports::EventPublisher> = event_bus.clone();
|
||||
let sqlite_pool = match &pool {
|
||||
#[cfg(feature = "sqlite")]
|
||||
DbPool::Sqlite(p) => p.clone(),
|
||||
};
|
||||
let event_publisher: Arc<dyn domain::ports::EventPublisher> =
|
||||
Arc::new(adapter_event_publisher::SqliteEventPublisher::new(sqlite_pool));
|
||||
|
||||
let schedule_engine = Arc::new(ScheduleEngineService::new(
|
||||
wire.library_query.clone(),
|
||||
|
||||
Reference in New Issue
Block a user