- EventPublisher now takes &DomainEvent (11 call sites + 3 impls updated) - EventEnvelope + EventConsumer port in domain - event-payload: serializable DomainEvent mirror with subject routing - event-transport: generic Transport/MessageSource traits, publisher/consumer adapters - adapters-nats: JetStream publish + durable pull consumer
13 lines
359 B
Rust
13 lines
359 B
Rust
use async_trait::async_trait;
|
|
use domain::{errors::DomainError, events::DomainEvent, ports::EventPublisher};
|
|
|
|
pub struct LogEventPublisher;
|
|
|
|
#[async_trait]
|
|
impl EventPublisher for LogEventPublisher {
|
|
async fn publish(&self, event: &DomainEvent) -> Result<(), DomainError> {
|
|
tracing::info!(?event, "domain event published");
|
|
Ok(())
|
|
}
|
|
}
|