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:
2026-03-25 20:07:50 +00:00
parent 098564db51
commit d87d888787
25 changed files with 1627 additions and 0 deletions

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