Skip to content
CAI
Software that uses CAICheck a score

wavezync/durable

61.5

Adequate · 18 September 2026

26.6k

lines of production code

Elixir

with TypeScript

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a resumable workflow engine for Elixir that persists execution state to PostgreSQL, enabling features like branching, parallel execution, and saga-style compensations. It includes a LiveView-based web dashboard for monitoring workflows, managing pending inputs, and visualizing execution graphs. The monorepo also provides a demo application illustrating human-in-the-loop approval patterns.

Features

Initial release of Durable monorepo with Elixir 1.20 and LiveView dashboard

This change introduces the Durable workflow engine as a path-dependency monorepo, establishing the core \:durable\ library and the \:durable\_dashboard\ LiveView-first web interface. The project now targets Elixir 1.20 and OTP 29, as defined in the new \.tool-versions\ file, and adopts the MIT license. The workspace structure includes a root \mix.exs\ for coordinating commands across packages, a shared metadata configuration in \shared.exs\, and a \docker-compose.yml\ for the required PostgreSQL 18 development database. The core engine provides resumable workflows with PostgreSQL persistence, while the dashboard offers monitoring capabilities.

(repo-wide) · high confidence

Initial release of Durable workflow engine

The Durable package is introduced as a new, resumable workflow engine for Elixir, offering features such as pipeline-based context flow, branching, parallel execution, compensations (saga pattern), cron scheduling, and PostgreSQL-backed persistence. This initial release (v0.1.0-rc) includes the core library code, configuration files for linting and formatting, and comprehensive documentation outlining installation, supervision tree integration, and usage examples for defining and running durable workflows.

durable · high confidence

Introduce Durable, a resumable workflow engine for Elixir

Adds the \Durable\ library, providing a DSL for defining durable, resumable workflows with built-in support for sleep/wait primitives, automatic retries with configurable backoff strategies, and saga-style compensation handlers. The engine persists workflow state and context to a PostgreSQL database (via an Ecto repo), allowing executions to survive crashes and resume from suspension points. It includes configuration for queue processing, pubsub broadcasting, and instance isolation, along with a context management system for sharing state between steps.

durable/lib · high confidence

Introduce durable\_dashboard as a LiveView-first Hex package

Adds the \durable\_dashboard\ package (v0.1.0-rc), a web console for the Durable workflow engine that renders server-side via Phoenix LiveView with a single ReactFlow island for the workflow graph. The package provides an overview, workflow catalog, faceted execution filters, execution details (including a timeline and logs), pending input handling, schedule management, and a command palette. It is installed as an Elixir dependency and mounted into a host application's router via the \DurableDashboard.Router\ macro, which handles its own pipelines and asset routes.

_durable\dashboard · high confidence

Introduce durable\_dashboard with LiveView-first architecture and React workflow graph

The durable\_dashboard package is introduced, establishing a LiveView-first architecture where the dashboard shell, navigation, and most UI components are rendered server-side via HEEx. A single React island is embedded exclusively for the workflow detail view, utilizing ReactFlow to render an interactive, auto-layout execution graph. This graph supports real-time status updates without layout reflow, features a global command palette (⌘K), copy-to-clipboard functionality, and localized time rendering for all timestamps.

_durable\dashboard/lib · high confidence

New Phoenix LiveView demo application for workflow engine

Added a new Phoenix LiveView example application in the \examples/phoenix\_demo\ directory that demonstrates the Durable workflow engine with human-in-the-loop approval capabilities. The demo includes a document processing workflow with real-time updates, a dashboard for monitoring executions, and an approval queue. It is configured with Phoenix v1.8 guidelines, Tailwind CSS v4, and a custom daisyUI theme, and requires PostgreSQL 13+ to run.

examples · high confidence

Behavioural changes

Dashboard UI updated with Tailwind CSS v4 and React Flow styling

The durable dashboard's static assets have been rebuilt, introducing a new app.css file generated by Tailwind CSS v4.2.1. This update provides the foundational styling for the dashboard interface, including comprehensive utility classes for layout, typography, and theming, as well as specific styles for the React Flow library to support interactive node-based visualizations.

_durable\dashboard/priv · high confidence

Durable library now includes embedded configuration and database migrations

The Durable library has been restructured to include its own \config.exs\ and \priv/repo/migrations\ directories, making it an embeddable library that ships with its own database schema. This change introduces four new Ecto migrations to create the \workflow\_executions\, \step\_executions\, \pending\_inputs\, and \scheduled\_workflows\ tables, along with necessary indexes. Configuration files for development, production, and test environments are now provided, with production setup requiring a \DATABASE\_URL\ environment variable. Users integrating Durable will now have these tables and configurations available directly within the library, simplifying setup for development and testing while allowing production users to provide their own repo in the supervision tree.

durable/config, durable/priv · high confidence

Test coverage

Added comprehensive test coverage for durable workflow execution features; Added test coverage for DurableDashboard components and utilities.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 61.

Lenses

  • Code Health 95
  • Architecture 95
  • Maturity 79
  • Readiness 37
  • Security 81
  • Accessibility 87

Changes since last survey

  • 93 commits — 73 feature/other, 20 fixes

By area

  • lib/durable — 25 commits
  • (root) — 19 commits
  • durable_dashboard/lib — 9 commits
  • (repo) — 7 commits
  • test/durable — 6 commits
  • .github/workflows — 3 commits
  • durable/lib — 3 commits
  • durable_dashboard/assets — 3 commits
  • examples/phoenix_demo — 3 commits
  • durable/README.md — 2 commits
  • durable_dashboard/mix.exs — 2 commits
  • durable_dashboard/test — 2 commits
  • lib/mix — 2 commits
  • .claude/settings.json — 1 commit
  • agents/conversations — 1 commit
  • agents/milestones — 1 commit
  • docs/bug-reports — 1 commit
  • durable/test — 1 commit
  • durable_dashboard/priv — 1 commit
  • guides/ai_workflows.md — 1 commit

Notable commits

  • fix: Fix dashboard live navigation flash
  • fix: fix(dashboard): unbreak overview links and reorder Recent workflows
  • fix: fix: allow using Durable as a part of sup tree
  • fix: fix: ci
  • fix: fix: ci
  • fix: fix: coding guidelines
  • fix: fix: credo
  • fix: fix: credo
  • fix: fix: credo
  • fix: fix: format
  • fix: fix: homepage
  • fix: fix: improve test reliability and coverage
  • fix: fix: mix
  • fix: fix: mix org
  • fix: fix: override durable path dep in workspace and demo
  • fix: fix: readme
  • fix: fix: remove reference to hidden function in docs
  • fix: fix: resolve Elixir 1.20 gradual-type warnings and harden cold-build tests
  • fix: fix: resolve credo strict mode violations
  • fix: fix: use Atom.to_string instead of inspect for workflow module name
  • …and 73 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

wavezync/durable was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit ad6032446185808f4e7a27820490226a012eb29d — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.