[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-write-ahead-log::en":3,"gloss-cluster-write-ahead-log::en":26,"gloss-next-write-ahead-log::en":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"write-ahead-log","data-infra","Write-Ahead Log (WAL)","A write-ahead log (WAL) is an append-only file where a database records every change before applying it to the actual data files. The rule is in the name: the change is written to the log first, then to the tables. If the server crashes mid-write, the database replays the log on restart to recover a consistent state — nothing committed is ever lost.\n\nThis one mechanism underpins durability (the D in ACID), and it quietly powers much more. Point-in-time recovery replays the WAL up to a chosen moment. Streaming replication ships the WAL to replicas so they stay in sync. Change-data-capture tools read the WAL to emit an event for every row that changes.\n\nFor SaaS builders, the practical takeaways are: WAL is why a crashed Postgres comes back intact, and why heavy write bursts can bloat disk if the log isn't archived or drained. Monitor WAL growth, and lean on it — not triggers — when you need a reliable change feed.","A write-ahead log records every change before it touches the data files, so a crash mid-write is recoverable by replaying the log — and it powers CDC and replicas.",null,[11,14,17,20,23],{"slug":12,"name":13},"acid","ACID",{"slug":15,"name":16},"change-data-capture","Change Data Capture (CDC)",{"slug":18,"name":19},"postgresql","PostgreSQL",{"slug":21,"name":22},"replication","Replication",{"slug":24,"name":25},"transactional-outbox","Transactional Outbox",[27,29,32,35,38,42,45,48,49,52,56,59],{"slug":12,"category":5,"name":13,"updated_at":28},"2026-08-24T02:46:37+00:00",{"slug":30,"category":5,"name":31,"updated_at":28},"ann-search","ANN Search",{"slug":33,"category":5,"name":34,"updated_at":28},"backpressure","Backpressure",{"slug":36,"category":5,"name":37,"updated_at":28},"batch-processing","Batch Processing",{"slug":39,"category":5,"name":40,"updated_at":41},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":43,"category":5,"name":44,"updated_at":28},"cache","Cache",{"slug":46,"category":5,"name":47,"updated_at":28},"cap-theorem","CAP Theorem",{"slug":15,"category":5,"name":16,"updated_at":28},{"slug":50,"category":5,"name":51,"updated_at":28},"chroma","Chroma",{"slug":53,"category":5,"name":54,"updated_at":55},"chunk-overlap","Chunk Overlap","2026-08-24T03:30:02+00:00",{"slug":57,"category":5,"name":58,"updated_at":28},"columnar-storage","Columnar Storage",{"slug":60,"category":5,"name":61,"updated_at":28},"connection-pooling","Connection Pooling"]