use async_trait::async_trait;
use crate::store::StoreEvent;
use crate::Aggregate;
#[cfg(feature = "kafka")]
pub mod kafka;
#[cfg(feature = "rabbit")]
pub mod rabbit;
#[async_trait]
pub trait EventBus<A>: Sync
where
A: Aggregate,
{
async fn publish(&self, store_event: &StoreEvent<A::Event>);
}