The logical changelog is an optional append-only log that records all mutations to the database. It enables audit trails, change data capture (CDC), and replication pipelines.Documentation Index
Fetch the complete documentation index at: https://hexxladb.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
- Format: Append-only sidecar file
{primary}-changelog - Scope: All mutations (cells, seams, facets, edges)
- Purpose: Audit trails, CDC, replication
- Configuration: Via
Options.ChangelogEnabled
Enabling changelog
Changelog entry structure
Each entry includes:- Commit sequence — MVCC commit identifier
- Operation type — Put, Delete, etc.
- Key family — cell, seam, facet, edge
- Key — The affected key
- Value (optional) — New value for Put operations
- Timestamp — Wall-clock time
Reading the changelog
Read from a point
Read all
Use cases
Audit trails
Track all changes for compliance and debugging:Change data capture
Feed changes to external systems:Replication
Replicate to another database:Changelog and MVCC
The changelog records committed mutations at their commit sequence. This aligns with MVCC snapshots for consistent replay.Compaction behavior
The changelog is not carried over during compaction. After compacting:- Close the database
- Compact to new file
- Re-open with changelog enabled
- Changelog starts fresh from the compacted state
Performance considerations
- Write overhead: Minimal (append-only, sequential writes)
- Space: Grows with write volume; manage via rotation or archival
- Read performance: Fast sequential reads from a point
Changelog rotation
The changelog does not support automatic rotation. For long-running systems:- Monitor changelog file size
- Archive or truncate based on retention policy
- Consider external log aggregation systems
Incident response
Changelog tail corruption
Signal:ErrChangelogCorrupt from ReadChangelogSince
Response:
- Pause consumers
- Truncate/repair changelog per ops policy
- Re-bootstrap derived state from DB truth + reconciliation steps
Limitations
- Changelog is not encrypted (even if database is encrypted)
- No automatic rotation or archival
- Sidecar file (not in B+ tree)
- Does not support filtering by operation type during read