- Breaking: Remove
workflow::Context::tx; step contexts no longer expose a worker transaction directly - Breaking: Workflow activities are now registered on
Workflow::builder()before steps - Breaking: Remove manual activity keys; operation identity is now derived from workflow run ID, step index, and per-step operation order
- Add:
Runtimehigh-level orchestration API sourced from builder-registered activities - Breaking: Remove
Workflow::runandWorkflow::start; useworkflow.runtime().run()/workflow.runtime().start() - Breaking: Remove
Workflow::workerandWorkflow::scheduler; useworkflow.runtime().worker()/workflow.runtime().scheduler() - Add:
Activitytrait and standard activity error envelope - Add: Durable typed
workflow::InvokeActivityhelpers (A::call/A::emit) with compile-time registration checks - Add:
waitingtask state to support workflow suspension while activity calls complete - Breaking: Rename
enqueue_multitoenqueue_manyand return task IDs for batch enqueue - Perf: Optimize
enqueue_manyfor uniform-config batches - Fix: Pending retry delays now respect the last attempt time when re-queuing tasks
- Fix: Reap completed worker processing tasks to avoid unbounded memory growth
- Fix: Fence reclaimed task attempts so stale workers cannot update task state
- Fix: Workflow step configuration now uses the step index from input to avoid cross-run drift
- Add: Workflow steps can configure task timeouts, TTLs, delays, heartbeats, concurrency keys, and priorities
- Add: Workflow batch enqueue helpers (
enqueue_many,enqueue_many_using) - Breaking: Rename workflow step transition type
TotoTransition, including helper constructorsdone->completeanddelay_for->after
- Breaking: Queues are now stored and passed as
Arc<Queue<_>>;Worker::newandScheduler::newtakeArc<Queue<_>>instead ofQueue<_>. #100 - Breaking:
Workflow::run_workerandWorkflow::run_schedulerhave been removed. #100 - Breaking:
Workflow::runandWorkflow::startnow take&selfrather than consumingself. #100 - Fix: Shutdown channels are now unique. #97
- Add:
Workflow::queue,Workflow::worker, andWorkflow::schedulerhelpers for zero‑boilerplate executor creation. #100 - Add:
enqueue_multiet al, allowing batched enqueue. #79
- Provide additional worker and scheduler tracing instrumentation
- Fix: Workflow cancellation should lock rows to be cancelled #67
- Breaking: Worker and scheduler setters have been renamed #42
- Breaking: Migrations have been reworked to compensate for features that will land in
sqlx0.9.0 #44 - Breaking: Workflow enqueues now return an
EnqueuedWorkflowtype #46 - Breaking: Task ID is now a newtype #47
- Breaking: Task dequeues are now encapsulated such that they are visible as they're being processed #55, #59, #60, #64, #65
- Breaking: Task schedule "name" column renamed to "task_queue_name" for consistency #58
- Breaking: Scheduler iterator has been refactored to use
Zoneddirectly #62 - Task attempts are now recorded in a separate table, providing a complete log of task execution history #50
- Breaking: Queue methods now take input by reference
- Breaking: Workflow methods also take input by reference
- Breaking: The scheduler
run_everymethod is removed - Pending tasks are now processed upon change via a notify channel #25
- An
unschedulemethod is provided onQueueandWorkflow#40 - Graceful shutdown is now available on
WorkflowHandlereturned fromstart#37
- Breaking: Tasks require an associated type Output
- Breaking: Tasks require a transaction as their first execute argument
- Breaking: Database locking methods are now free functions
- Breaking: Workflow interface rewritten for step functions #24
- Breaking: Renamed builders to
Builder#15 - Breaking: Made task deletion routine a free function #13
- Breaking:
Workflow::runnow runs both the worker and scheduler #12 - Ensure scheduler singleton behavior
- Added
ToTaskResulttrait for better task result ergonomics #10
- Workflows may provide state #9
- Breaking:
queuemust now be defined afterexecute - Workers may be gracefully shutdown via
graceful_shutdown#8 - Workflows and queue are provided
enqueue_after#7
- Pre-release: baseline feature completion
- Pre-release 🎉