made_core/ports/
messaging.rs1use crate::error::DomainError;
9use crate::events::{
10 DeliberationCompletedEvent, PhaseChangedEvent, TaskCompletedEvent, TaskDispatchedEvent,
11 TaskFailedEvent,
12};
13use async_trait::async_trait;
14
15#[async_trait]
20pub trait MessagingPort: Send + Sync {
21 async fn publish_task_dispatched(&self, event: &TaskDispatchedEvent)
22 -> Result<(), DomainError>;
23 async fn publish_task_completed(&self, event: &TaskCompletedEvent) -> Result<(), DomainError>;
24 async fn publish_task_failed(&self, event: &TaskFailedEvent) -> Result<(), DomainError>;
25 async fn publish_deliberation_completed(
26 &self,
27 event: &DeliberationCompletedEvent,
28 ) -> Result<(), DomainError>;
29 async fn publish_phase_changed(&self, event: &PhaseChangedEvent) -> Result<(), DomainError>;
30}