feat(wfe-core): add models, traits, and error types
Core domain models: WorkflowInstance, ExecutionPointer, WorkflowDefinition, WorkflowStep, Event, EventSubscription, ScheduledCommand, ExecutionError, LifecycleEvent, PollEndpointConfig. All serde-serializable. Provider traits: PersistenceProvider (composite of WorkflowRepository, EventRepository, SubscriptionRepository, ScheduledCommandRepository), DistributedLockProvider, QueueProvider, SearchIndex, LifecyclePublisher, WorkflowMiddleware, StepMiddleware, WorkflowRegistry. StepBody trait with StepExecutionContext for workflow step implementations. WorkflowData marker trait (blanket impl for Serialize + DeserializeOwned).
This commit is contained in:
9
wfe-core/src/traits/lifecycle.rs
Normal file
9
wfe-core/src/traits/lifecycle.rs
Normal file
@@ -0,0 +1,9 @@
|
||||
use async_trait::async_trait;
|
||||
|
||||
use crate::models::LifecycleEvent;
|
||||
|
||||
/// Publishes lifecycle events for workflow state transitions.
|
||||
#[async_trait]
|
||||
pub trait LifecyclePublisher: Send + Sync {
|
||||
async fn publish(&self, event: LifecycleEvent) -> crate::Result<()>;
|
||||
}
|
||||
Reference in New Issue
Block a user