P Eduba
All posts Engineering

Audit-by-default — what we mean by it

By Maximilian · Apr 22, 2026 · 7 min read

Every mutation in Eduba is audited. Not as a plugin, not as a setting — as a structural property of the data layer.

What audit-by-default means

Audit-by-default means you cannot write to the system without leaving a signed trace. The audit record is not a log file — it is a first-class row in the same database, in the same transaction as the business event. If the transaction rolls back, the audit record rolls back with it.

The append-only ledger

Mutable entities (stock, AR, GL) are modelled as append-only ledgers. The current balance is always a view over the ledger, not a stored scalar. This means you can reconstruct the state at any point in time without a separate audit trail.

Soft deletes and tombstones

Hard deletes are not allowed on any business entity. Deletion creates a tombstone record with a reason code and the actor’s identity. Soft-deleted records are excluded from default queries but remain accessible in audit views.