Most developers use PostgreSQL every day without knowing
what happens under the hood when they run an INSERT. I
wanted to find out. So I built pgstream — a tool that
reads every database change in real time directly from
PostgreSQL's internal log.
What is the WAL?
Every time you insert, update, or delete a row, Postgres
doesn't immediately write to the actual data files. It
first writes the change to a file called the WAL — Write
Ahead Log. This is how Postgres guarantees nothing gets
lost if the server crashes mid-write.
I had read about WAL in docs before but never really
understood why it existed until I started building this.
It clicked when I realized — the WAL is basically a
journal. Postgres writes every intention down first,
then acts on it.
Logical Replication and pgoutput
WAL records are stored in raw binary. You can't just
read them like a text file.…