Edge cases, specified
The requester is also an approver. The approver is on leave and their delegate already voted. Nobody is left to approve mid-flow. Each case has an ID, a documented behavior and a test.

npm install @rungsjs/core @rungsjs/store-postgresEdge cases, specified
The requester is also an approver. The approver is on leave and their delegate already voted. Nobody is left to approve mid-flow. Each case has an ID, a documented behavior and a test.
A pure engine
The core has no dependencies and no I/O. Time, IDs and approver lookups are injected, so the same state and command always give the same result.
PostgreSQL included
A store for PostgreSQL 15+ with migrations, row locks and leases for parallel workers. Bring node-postgres, postgres.js or PGlite.
Try the demo
A Next.js app with an inbox, timeline, delegation, admin tools and a clock you can move forward. It runs without installing a database.