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.
This commit is contained in:
2026-03-26 00:25:23 +00:00
parent 7497d4c80b
commit 386cd2255d
8 changed files with 865 additions and 0 deletions

67
wfe-sqlite/README.md Normal file
View File

@@ -0,0 +1,67 @@
# 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
```rust
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:
```rust
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:`:
```sh
cargo test -p wfe-sqlite
```
## License
MIT