PostgreSQL
17 items using PostgreSQL
Blog Posts
PostgreSQL Internals Series, Part 7: Connection Management & Process Model
PostgreSQL's forking process model, backend lifecycle, connection pooling with PgBouncer, background workers, and resource limits per connection.
PostgreSQL Internals Series, Part 6: Write-Ahead Logging & Replication
How PostgreSQL guarantees durability with WAL, recovers from crashes, and replicates to standbys using streaming replication and logical slots.
PostgreSQL Internals Series, Part 5: Memory & BufferPool
How PostgreSQL manages memory — shared buffers, eviction policies, dirty pages, checkpoints, WAL buffers, and optimal sizing.
PostgreSQL Internals Series, Part 4: Query Planning & Optimization
How the planner estimates costs, uses statistics, chooses join strategies, and why it sometimes picks seq scans over indexes.
PostgreSQL Internals Series, Part 3: Indexes & B-Trees
How PostgreSQL indexes work — B-tree structure, scans, deduplication, index types, bloat detection, and when the planner uses them.
PostgreSQL Internals Series, Part 2: Transaction Isolation & MVCC
How PostgreSQL handles concurrent transactions — xmin/xmax visibility rules, snapshots, isolation levels, and the vacuum process.
Debezium Series, Part 9: Production Concerns
Operating Debezium in production: offset management, failure recovery, monitoring connector lag, replication slot health, rebalancing, and the operational patterns that keep CDC pipelines healthy.
Debezium Series, Part 8: Transforms & Routing
Single Message Transforms (SMTs) for reshaping, filtering, and routing CDC events. Field extraction, topic routing, sensitive data masking, and when to reach for a stream processor.
Debezium Series, Part 7: Snapshotting
How Debezium captures existing data before streaming live changes. All snapshot modes explained — initial, never, always, when_needed — plus isolation guarantees and large-table strategies.
PostgreSQL Internals Series, Part 1: Page Layout & Storage
How PostgreSQL stores data on disk — page structure, tuple anatomy, alignment, TOAST, and practical inspection with pageinspect.
Debezium Series, Part 6: Handling Schema Changes
What happens when someone alters a table. DDL propagation, Schema Registry integration, breaking vs non-breaking changes, and strategies to evolve without downtime.
Debezium Series, Part 4: Source Connectors — PostgreSQL & MySQL
Deep dive into PostgreSQL (pgoutput) and MySQL (binlog) source connectors. Configuration reference, behavioral differences, and connector-specific gotchas.
Debezium Series, Part 3: Change Event Anatomy
Dissecting every field in a Debezium change event — before, after, op, source metadata, tombstones, and how the Kafka message key is structured.
Debezium Series, Part 2: Setting Up Debezium
Hands-on Docker Compose setup with PostgreSQL, Kafka, Kafka Connect, and the Debezium connector. See your first change event in under 10 minutes.
Debezium Series, Part 1: How CDC Works
Log-based vs query-based CDC, how PostgreSQL WAL and MySQL binlog work, what Debezium reads, and at-least-once delivery guarantees explained.
Debezium Series, Part 0: Overview
A practical guide to Change Data Capture with Debezium — from WAL internals to Delta Lake and Iceberg sinks. What you'll learn and why CDC matters.
PostgreSQL Internals Series, Part 0: Overview
A roadmap through PostgreSQL 18 internals — from storage to replication. Why learning the engine matters and what you'll build.