Skip to content

feat: add throughput benchmark suite#54

Open
danfry1 wants to merge 1 commit into
fix/sqlite-bun-changesfrom
feat/benchmarks
Open

feat: add throughput benchmark suite#54
danfry1 wants to merge 1 commit into
fix/sqlite-bun-changesfrom
feat/benchmarks

Conversation

@danfry1

@danfry1 danfry1 commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a throughput benchmark suite so Reflow's performance is measurable and reproducible — supporting the project's "no external services, low overhead" positioning with real numbers.

bun run bench (benchmarks/index.ts) measures the engine + storage layers (trivial handlers, no-op passthrough input schema, so the numbers reflect Reflow's own cost rather than a workload):

  • Enqueue throughputcreateRun rate.
  • End-to-end execution — enqueue → durable completion, reported as runs/sec and steps/sec.
  • Across the in-memory and Bun SQLite adapters, for 1-step and 5-step workflows, at concurrency 25.

Baseline numbers (Bun, Apple Silicon) are published in the README's new Performance section. The harness warms up the JIT/disk before timing and has a drain safety-bound so it can never spin.

Base

Branched off fix/sqlite-bun-changes (#52): the Bun SQLite adapter only functions with that change-detection fix (without it, updateClaimedRunStatus returns false, runs never complete, and the benchmark stalls — which this work incidentally re-confirmed). Once #52 merges, this retargets to main cleanly (it only adds new files: benchmarks/, a bench script, and README/CHANGELOG notes).

Verified: typecheck, test, build, lint:deps, test:bun all pass; the benchmark file is independently type-clean.

Add benchmarks/index.ts (run via `bun run bench`) measuring engine and
storage overhead — enqueue throughput and end-to-end execution (enqueue
to durable completion) — across the in-memory and Bun SQLite adapters,
for 1- and 5-step workflows. Uses a no-op passthrough input schema and
trivial handlers so the numbers reflect Reflow's own cost. Publishes
baseline numbers in the README.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant