Glossary
Append-only log
An append-only log records new entries without replacing or deleting earlier entries in ordinary operation.
Time and versioning
An append-only log preserves a sequence of entries by adding later records instead of mutating earlier ones in normal use. That structure can make changes observable and support reconstruction of a previous state. It says little on its own about the truth of an entry, the completeness of captured activity, or whether privileged administrators can alter storage. Those properties depend on controls, retention, and independent verification beyond the append operation.
Useful log entries identify an actor or process, a timestamp with defined semantics, an action, and the affected object or assertion. Corrections need explicit links to the entries they supersede. Consumers must know whether order is total or only local to a stream, and whether duplicate delivery is possible. Operational logs may be compacted or expired under a retention policy, so an 'append-only' label should not be mistaken for indefinite preservation.
The pattern helps an organization show how its recorded understanding changed rather than presenting only the latest value. It can support an audit trail or an event-sourced view, but those are different concepts: the former asks what activity is accountable, while the latter derives state from events. A retained source copy and chain of custody are still needed when a reviewer must inspect the evidence behind an entry.
Example
Halden Therapeutics AG (fictional) records a status correction as a new entry that points to the earlier status entry and its supporting notice.
Making append-only a property you can verify
An append-only log accepts new entries and does not alter or remove earlier ones. By itself that is a policy, and a policy can be broken by whoever controls the storage. The stronger form makes tampering detectable. Each entry includes the hash of the previous entry, so a change anywhere breaks every later hash; or entries are leaves of a Merkle tree whose root is published periodically. The Certificate Transparency system standardised in RFC 9162 is the best-known deployment: logs of issued certificates are append-only, publicly verifiable, and support proofs that an entry is included and that one version of the log is an extension of an earlier one. The open-source Trillian project provides a verifiable log implementation on the same principles.
The practical lesson is that append-only has levels. A table with no update privilege is a weak form. A hash-chained log kept by the same operator shows tampering to an auditor who has an earlier root. A log whose roots are published or witnessed by independent parties makes undetected tampering much harder. Choose the level to match the threat: protection against honest mistakes needs less than protection against an insider with administrative rights.
What belongs in the log and how long it lives
An entry should record who or what acted, what was done, to what, when and with what result, in enough detail to reconstruct the action but without unnecessary sensitive content. The NIST Guide to Computer Security Log Management, SP 800-92 discusses what to log, how to protect logs from alteration, and how to manage their volume and retention. The Wikipedia article on append-only gives the general computing background.
Logs grow. Plan for compaction and archiving without breaking verifiability: archive complete segments with their hashes, keep the roots, and record the archive as a log entry. Plan for erasure obligations by keeping personal data outside the log or encrypted under keys that can be destroyed. Plan for clock and ordering: entries should have a sequence number as well as a timestamp, since timestamps from different machines may not agree.
A worked example
A data platform logs every change to the approved supplier list for Halden Therapeutics AG (fictional). Each entry holds the actor, the action, the supplier identifier, the old and new values, a sequence number and the hash of the previous entry. Every hour the head hash is written to a separate system run by another team. An internal review asks whether the list was changed outside the normal process. The reviewer recomputes the hash chain from the archive and compares each hourly head hash with the independent record; one segment fails to verify, pointing to an entry edited after the fact by a database administrator. The failure is detectable because the log was designed for it; a plain table with an audit column would have shown nothing.
Checks a reviewer can run
Ask who holds privileges that could alter or delete entries. Recompute the hash chain on a sample and compare to independently held roots. Ask where the roots are kept and who can alter them. Ask how the log handles archiving, erasure requests and clock differences. Test detection by altering a copy of a log segment and confirming that verification fails.
Related terms and boundaries
The log is the base of event sourcing and the substance of an audit trail. It gives transaction time its integrity and extends the reach of chain of custody. It relies on content addressing for its hash links.
Common misreadings
- Assuming append-only storage proves completeness or truth.
- Deleting records while continuing to claim indefinite history.
- Omitting the link between a correction and the entry corrected.
References
- Kleppmann, Designing Data-Intensive Applications (2017), chapter 11.
- IETF (2021), RFC 9162: Certificate Transparency Version 2.0.
- Trillian, a transparent, verifiable log (Google).
- NIST SP 800-92, Guide to Computer Security Log Management.
- Wikipedia, Append-only.
Found an error on this page? See corrections for what counts as one, how to report it and the dated log.
Enquiry
Where does "Append-only log" bear on a decision of yours?
This entry sits under time and versioning. If a decision in your organization turns on it, send the entity concerned, the sources you fuse to describe it and who may read which of them. We reply with what a first record would cover.
Or write to [email protected] in your own words.