whale

The business runs itself.
You read the numbers.

Metrics & reports, alerts, workflows & lifecycles, scheduled jobs — all reading one record, so nothing drifts.

acme / operationsengine running
live from the record

Operations

run workflow
jobs28
healthy27
waiting1
daily.closeall locations · 00:05complete
inventory.reorder8 low-stock productscomplete
fulfillment.shiporder_7842 · packedrunning
refund.issueorder_7814 · $180approval

Numbers, recomputed on ask.

A metric is recomputed from the ledger the moment you read it. No stale dashboard, no export that was true last Tuesday.

Alerts watch the spine.

Alerts and scheduled jobs are declared in your rulebook. They watch the event spine and fire on your conditions — and their firings are on the record too.

Workflows advance one gate at a time.

Fulfillment, purchase orders, transfers — declared lifecycles that move step by recorded step. A stuck step is visible; a skipped step is impossible.

See it at the door.

Reading a metric recomputes it from the ledger; advancing a workflow is one typed step — both on the record.

$ whale cmd metrics.read --json '{"metric":"revenue.week"}'
  # revenue.week = $18,420.00 · recomputed from the ledger, just now
$ whale cmd lifecycle.advance --json '{"type":"fulfillment","id":"f_310","to":"shipped"}'
  # f_310 → shipped · event emitted · alerts checked · on the record

Derived state can always be rebuilt.

Reports, totals, and views are recomputed from the permanent record — so they never disagree with reality. Facts are forever; everything derived is disposable.

more capabilities: inventory & purchasing · money & lightning · the record & security