Files
wfe/wfe-sqlite
Sienna Meridian Satterwhite 386cd2255d docs: add README for workspace and all 7 crates
Root README covers architecture, Rust builder API quick start,
YAML pipeline quick start, provider table, deno executor overview,
feature flags, and testing instructions.

Per-crate READMEs follow consistent structure: one-liner, what it
does, quick start code example, API reference, configuration,
testing, license. Engineering-confident tone throughout.
2026-03-26 00:25:23 +00:00
..

wfe-sqlite

SQLite persistence provider for the WFE workflow engine.

What it does

Implements the full PersistenceProvider trait (workflows, events, subscriptions, scheduled commands, execution errors) backed by SQLite via sqlx. Supports both in-memory and file-based databases. Tables and indexes are created automatically on startup -- no migrations to run.

Quick start

use wfe_sqlite::SqlitePersistenceProvider;

// In-memory (good for tests and single-process deployments)
let provider = SqlitePersistenceProvider::new(":memory:").await?;

// File-based (persistent across restarts)
let provider = SqlitePersistenceProvider::new("sqlite:///tmp/wfe.db").await?;

Wire it into the WFE host as your persistence layer:

let host = WorkflowHost::new(provider);

API

Type Trait
SqlitePersistenceProvider PersistenceProvider, WorkflowRepository, EventRepository, SubscriptionRepository, ScheduledCommandRepository

Key methods come from the traits -- create_new_workflow, persist_workflow, get_runnable_instances, create_event, schedule_command, and so on. See wfe-core for the full trait definitions.

Configuration

The constructor takes a standard SQLite connection string:

Value Behavior
":memory:" In-memory database, single connection, lost on drop
"sqlite:///path/to/db" File-backed, WAL journal mode, up to 4 connections

WAL mode and foreign keys are enabled automatically. For in-memory mode, the pool is capped at 1 connection to avoid separate database instances.

Schema

Six tables are created in the default schema:

  • workflows -- workflow instance state and metadata
  • execution_pointers -- step execution state, linked to workflows via foreign key
  • events -- published events pending processing
  • event_subscriptions -- active event subscriptions with CAS-style token locking
  • scheduled_commands -- deferred commands with dedup on (command_name, data)
  • execution_errors -- error log for failed step executions

Testing

No external dependencies required. Tests run against :memory::

cargo test -p wfe-sqlite

License

MIT