pub trait SubscriptionService: Send + Sync {
// Required methods
fn next_id(&self) -> SubscriptionId;
fn register_subscription(
&self,
id: SubscriptionId,
flow_dag: FlowDag,
column_names: Vec<String>,
txn: &mut Transaction<'_>,
) -> Result<()>;
fn unregister_subscription(&self, id: &SubscriptionId) -> Result<()>;
}Expand description
Service interface for managing ephemeral subscriptions.
Implemented by reifydb-sub-subscription and registered in IoC as
Arc<dyn SubscriptionService>. The engine’s DDL code resolves this
to create and drop subscriptions.
Required Methods§
Sourcefn next_id(&self) -> SubscriptionId
fn next_id(&self) -> SubscriptionId
Generate a new unique subscription ID.
Sourcefn register_subscription(
&self,
id: SubscriptionId,
flow_dag: FlowDag,
column_names: Vec<String>,
txn: &mut Transaction<'_>,
) -> Result<()>
fn register_subscription( &self, id: SubscriptionId, flow_dag: FlowDag, column_names: Vec<String>, txn: &mut Transaction<'_>, ) -> Result<()>
Register a subscription with a pre-compiled flow DAG.
Sourcefn unregister_subscription(&self, id: &SubscriptionId) -> Result<()>
fn unregister_subscription(&self, id: &SubscriptionId) -> Result<()>
Unregister a subscription.