Verify · 002-trade-ledger

Append-only trade ledger

How to run, demo, and verify this feature — aggregated from the spec and tasks, with a Run/Demo block grounded in the run that actually happened.

Generated from spec.html · tasks.html Derived status accepted (from spec.html — this view carries no status of its own) Read time

A derived view — regenerate with spectastic verify 002-trade-ledger; do not hand-edit. The trace links are aggregated from the bundle; only the Run/Demo block is authored, from the real run.

1 · Run / Demo

none — the ledger is always-on infrastructure; the REST surface above it ships dark export JAVA_HOME="$(asdf where java temurin-21.0.9+10.0.LTS)" && mvn test -Dtest=LedgerTest,ReconcileToReplayTest Append N events; LedgerTest shows sequence 1..N with no gaps and idempotent re-delivery by client key; ReconcileToReplayTest shows a snapshot at N plus a tail replay equals a full from-zero replay.

2 · Verification trace

Every success criterion, traced to its acceptance scenario and the test task that closes it. (The snapshot/restore test T-200 runs in the same suite — see the Run block — but is tied to the reliability NFRs, not an SC.)

Success criterionAcceptanceProof (tests)
SC-001US1T-100
SC-002US3T-300

3 · Observables trace

Every reliability NFR, traced to its SLO — objective, SLI, and golden signal.

NFRObjectiveSLISignal
NFR-001p99 < 5 µsassign a sequence and append to the hot tail, pre-durability-acklatency
NFR-002≥ 1,000,000 appends/s sustainedsustained single-writer append rate ÷ the 1e6/s floortraffic
NFR-0030 loss-or-gap eventsacknowledged-append losses or detected sequence gapserrors
NFR-004hot-tier bytes < 2 GB at 1e9 lifetime tradesresident hot-tier bytes ÷ the 2 GB ceiling, at peaksaturation