Gunnar Morling
Recent content on Gunnar Morling
DatabasesJava / JVMDistributed systems / cloudSoftware / engineering practice
- Posts
- 104 from 26 Dec 2019 to 15 Oct 2026
- Posting
- monthly (15 in the last year)
- Kind
- personal blog
- Feed
- https://www.morling.dev/index.xml
2026 10
- Conferences
- Row-Group Control, Faster S3 Reads, Footer Caching: Hardwood 1.1.0.Beta2 Is Out
- Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out
- A Fast Path for Fixed-Length Lists in Parquet
- Hardwood 1.0: A Fast, Lightweight Apache Parquet Reader for the JVM
- Improved Column Reader API, First Cut of Geospatial Support: Hardwood 1.0.0.CR1 Is Available
- Podcasts and Interviews
- VARIANT Support, Interactive Parquet File TUI: Hardwood 1.0.0.Beta2 Is Out
- Hardwood Reaches Beta: S3, Predicate Push-Down, CLI, and More
- Hardwood: A New Parser for Apache Parquet
2025 20
- You Gotta Push If You Wanna Pull
- On Idempotency Keys
- Building a Durable Execution Engine With SQLite
- "You Don't Need Kafka, Just Use Postgres" Considered Harmful
- Let's Take a Look at... Lower Java Tail Latencies With ZGC
- Postgres Replication Slots: Confirmed Flush LSN vs. Restart LSN
- Converting Future to CompletableFuture With Java Virtual Threads
- Mastering Postgres Replication Slots: Preventing WAL Bloat and Other Production Issues
- How I Use (and Don't Use) AI
- This AI Agent Should Have Been a SQL Query
- Backfilling Postgres TOAST Columns in Debezium Data Change Events
- "Streaming vs. Batch" Is a Wrong Dichotomy, and I Think It's Confusing
- What If We Could Rebuild Kafka From Scratch?
- A Deep Dive Into Ingesting Debezium Events From Kafka With Flink SQL
- Building a Native Binary for Apache Kafka on macOS
- Let's Take a Look at... JEP 483: Ahead-of-Time Class Loading & Linking!
- The Synchrony Budget
- Let's Take a Look at... KIP-932: Queues for Kafka!
- Get Running with Apache Flink on Kubernetes, part 2 of 2
- Get Running with Apache Flink on Kubernetes, part 1 of 2
2024 13
- Failover Replication Slots with Postgres 17
- Thoughts On Moving Debezium to the Commonhaus Foundation
- Building OpenJDK From Source On macOS
- Revisiting the Outbox Pattern
- CDC Is a Feature Not a Product
- How I Am Setting Up VMs On Hetzner Cloud
- Leader Election With S3 Conditional Writes
- Shell Spell: Extracting and Propagating Multiple Values With jq
- A Zipping Gatherer
- A Taxonomy Of Data Change Events
- Last Updated Columns With Postgres
- Filtering Process Output With tee
- 1BRC—The Results Are In!
2023 12
- The One Billion Row Challenge
- Logical Replication From Postgres 16 Stand-By Servers—Debezium and Failover Slots
- Using Stand-by Servers for Postgres Logical Replication
- Tracking Java Native Memory With JDK Flight Recorder
- Getting Started With PyFlink on Kubernetes
- "Change Data Capture Breaks Encapsulation". Does it, though?
- Can Debezium Lose Events?
- CDC Use Cases: 7 Ways to Put CDC to Work
- Finding Java Thread Leaks With JDK Flight Recorder and a Bit Of SQL
- Getting Started With Java Development in 2023 — An Opinionated Guide
- Oh... This is Prod?!
- Is your Blocking Queue... Blocking?
2022 13
- Maven, What Are You Waiting For?!
- Postgres 15: Logical Decoding Row Filters With Debezium
- The Insatiable Postgres Replication Slot
- Running a Quarkus Native Application on Render
- Why I Joined Decodable
- An Ideation for Kubernetes-native Kafka Connect
- Testing Kafka Connectors
- Ten Tips to Make Conference Talks Suck Less
- Loom and Thread Fairness
- Running JDK Mission Control on Apple M1
- The Code Review Pyramid
- The JDK Flight Recorder File Format
- What's in a Good Error Message?
2021 15
- Announcing the First Release of kcctl
- Introducing the OSS Quickstart Archetype
- O Kafka, Where Art Thou?
- Refining The Return Type Of Java Methods Without Breaking Backwards-Compatibility
- JDK Flight Recorder Events in GraalVM Native Binaries
- Debezium and Friends – Conference Talks 2021
- What's on My Desk?
- Executable JavaDoc Code Snippets
- Resource Bundle Look-ups in Modular Java Applications
- Introducing JfrUnit 1.0.0.Alpha1
- Three Plus Some Lovely Kafka Trends
- Exploring ZooKeeper-less Kafka
- The Anatomy of ct.sym — How javac Ensures Backwards Compatibility
- FizzBuzz – SIMD Style!
- Talking to Postgres Through Java 16 Unix-Domain Socket Channels
2020 19
- jlink's Missing Link: API Signature Validation
- ByteBuffer and the Dreaded NoSuchMethodError
- Towards Continuous Performance Regression Testing
- Smaller, Faster-starting Container Images With jlink and AppCDS
- Quarkus and Testcontainers
- Class Unloading in Layered Java Applications
- Building hsdis for OpenJDK 15
- Introducing JmFrX: A Bridge From JMX to JDK Flight Recorder
- How I Built a Serverless Search for My Blog
- Building Class Data Sharing Archives with Apache Maven
- Single Message Transformations - The Swiss Army Knife of Kafka Connect
- The Emitter Parameter Pattern for Flexible SPI Contracts
- Plug-in Architectures With Layrry and the Java Module System
- Introducing Layrry: A Launcher and API for Modularized Java Applications
- Reworking Git Branches with git filter-branch
- Monitoring REST APIs with Custom JDK Flight Recorder Events
- Enforcing Java Record Invariants With Bean Validation
- Using Java 13 Text Blocks (Only) for Your Tests
- Quarkus Qute – A Test Ride