Notes on rows at rest and rows in motion.

I'm an independent developer who writes about data engineering: batch versus streaming, idempotent jobs, CDC, Parquet layouts, quality checks, DAGs and backfills. Short, practical, with code that runs.

Read the notes

Pipeline diagram: source, transform, sinkordersclicksdb logdedupeupsertwarehousesourcetransformsink

What gets written about

Batch and streaming: source to sinkfilesnightly jobtable

Batch and streaming

How fresh does the number need to be, and what does it cost to get there.

Idempotent jobs: source to sinkeventswindowlive view

Idempotent jobs

Reruns are routine. The table should look the same after one run or three.

CDC and late data: source to sinkdatabase logmergereplica

CDC and late data

Duplicates, reordering and updates that show up after the partition closed.

Small charts, illustrative numbers

The charts on this site are drawn by hand in SVG to show shapes, not real measurements. A good check is one you can read at a glance.

Rows per partition

Consumer lag, falling

Latest notes

All notes