Durable Event-sourced Workflow Monad... Seriously!
summary
Workflows4s is a Scala 3 library that implements event-sourced persistence and a declarative workflow DSL with signals, timers, error channels, forks, loops and embedded subworkflows, requiring only a database not a separate server. Runtimes include in-memory, Postgres and Pekko and an odd per-instance SQLLight file storage, plus timer backends like quartz. It is a proof-of-concept that runs and visualizes instances via BPMN or mermaid, production-ready-ish but missing migration/versioning strategy and polish.
AI-written summary · about
chapters (8)
- 0:00Introduction and history
- 1:06Understanding workflows
- 4:40Challenges with existing tools
- 8:33Defining Workflows4s
- 14:19Workflow runtimes and design
- 17:14Runtimes and knocker-uppers
- 21:06Visualization and debugging
- 23:34Conclusion and future outlook
related talks
25mDevelop Automated Workflows in Seconds
45mFree Your Monads and the Rest Will Follow
27mSupercharging Backstage Scaffolder for Workflows
41mFixin the Hard Bits of Event Processing with Restate & Kafka
44mBuilding event-driven microservices with Scala and Functional Domain Models
27mCreating extensible workflows with off-label use of Python
31mBoring use cases for exciting types
51mScalaz Streams A Functional Approach to Compositional...
