Metrics, logs, and traces answer "what is my system doing right now, and what did it do recently?" fasten answers a different question: "what did my system commit to at timestamp T, and can I reconstruct that state exactly?" This is the temporal anchor of the positioning triangle.
Every observability stack answers point-in-time or windowed signal. None reconstruct state.
acct_042 believe about field risk_tier at 09:14 UTC?" Metrics are aggregate counts; they don't carry the field value at an entity. Logs are lines; they capture writes but not the derived belief. Traces are spans; a trace shows a request, not a stored fact.monotonic_seq is the total order per chain.Every fasten audit row carries four fields whose only job is making state queryable across time.
| Primitive | What it is | Question it answers |
|---|---|---|
monotonic_seq | Per-chain total order counter; strictly increasing, no gaps. | "In what order did commits land?" |
prev_hash + hash | SHA-256 chain over the canonical row form. | "Was this row altered since it was written?" |
canonical_form_id | Version identifier for the row's semantic schema. | "How do I decode a row written by an older SDK?" |
last_verified | Timestamp of the last time the chain was checked from this row backward. | "When did we last prove integrity?" |
Together they give the reader a way to ask what state existed at any prior timestamp, and the auditor a way to prove that state was not rewritten.
A regulator asks: "On the morning of 2026-08-14, what was your credit-scoring service's belief about applicant acct_042's risk tier when it decided to reject the loan?"
Against a metrics-and-logs stack, the answer is a reconstruction: pull logs for that request_id, hope the belief was logged verbatim, correlate with a metric time series, tell a story. Against fasten, the answer is a query:
The reader returns the belief row that was current at that timestamp, plus its prev_hash so the auditor can verify no row between then and now has been rewritten. The reconstruction is a query, not a narrative.
The ?as_of= parameter requires membrane's bitemporal view (issue P1-32). fasten's audit rows carry the primitives; membrane exposes the state-at-time query surface built on them.
The audit substrate for distributed systems, and the belief layer for the AI agents on top of them.