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(()) } }