{"slug": "debezium", "name": "Debezium", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 3, "commenters": 9, "warners": 2, "score": 1.604, "rising": -0.98, "first": "2025-11-05", "latest": "2026-08-09", "why": "it is clearly the most mature, most stable option in the space, with the best prospects for long-term survival. Highly recommended", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 4, "compare": 1, "warn": 2}, "spark": [2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "it is clearly the most mature, most stable option in the space, with the best prospects for long-term survival. Highly recommended", "kind": "", "icon": true, "domain": "debezium.io", "github_repo": null, "official_url": "https://debezium.io", "pricing": "", "aliases": ["Debezium"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 742256945, "item_id": 46391059, "url": "https://news.ycombinator.com/item?id=46391059", "by": "ahachete", "date": "2025-12-26", "version": null, "stance": "recommend", "quote": "we're really happy with Debezium in general", "excerpt": "> \"As part of the acquisition, we made an important decision: not only to keep PeerDB open source\" > \"Here goes the Open Source reference to our validation logic.\" > \"PeerDB Open Source Repository\" I hate to be that guy, but PeerDB seems to be governed by the Elastic License [1] which makes it NOT open source. The difference is not small, but significant for many. For one, it won't get integrated into other OSS proje", "context": "", "use_case": "Postgres change data capture", "switched_from": "", "story": "Lessons from a year of Postgres CDC in production"}, {"id": 735252768, "item_id": 45953298, "url": "https://news.ycombinator.com/item?id=45953298", "by": "nchmy", "date": "2025-11-17", "version": null, "stance": "recommend", "quote": "it is clearly the most mature, most stable option in the space, with the best prospects for long-term survival. Highly recommended", "excerpt": "Debezium published this doc on Exactly-once delivery with their most recent 3.3.0 version. They dont support it natively, but say it can be achieved via Kafka Connect https://debezium.io/documentation/reference/stable/configuration/eos.html You could probably achieve something similar with the NATS Jetstream sink as well, which has similar capabilities - though I think it doesnt have quite the same guarantees. I swit", "context": "", "use_case": "Postgres change data capture", "switched_from": "ConduitIO", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 735221168, "item_id": 45951323, "url": "https://news.ycombinator.com/item?id=45951323", "by": "davidelettieri", "date": "2025-11-16", "version": null, "stance": "recommend", "quote": "It's worth mentioning debezium https://debezium.io/", "excerpt": "It's worth mentioning debezium https://debezium.io/ It allows to publish all changes from the db to Kafka.", "context": "", "use_case": "Change data capture", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 787819633, "item_id": 49238727, "url": "https://news.ycombinator.com/item?id=49238727", "by": "gopalv", "date": "2026-08-09", "version": null, "stance": "warn", "quote": "dezebium and delta lake for quite some time but it would fail compactions", "excerpt": "This was basically Vertica's party trick for quite a long time to have a WOS and ROS formats for the same row and anti-caching between those two. You could've built a similar system with dezebium and delta lake for quite some time but it would fail compactions, if you run it fast enough. I've seen Oracle GoldenGate 12c do this trick in 2014 or so, using Mysql as the cheap replica. But they are all fragile to schema u", "context": "", "use_case": "", "switched_from": "", "story": "How We Pushed CDC into Postgres"}, {"id": 735235393, "item_id": 45952212, "url": "https://news.ycombinator.com/item?id=45952212", "by": "cpursley", "date": "2025-11-17", "version": null, "stance": "warn", "quote": "smokes debezium in terms of performance", "excerpt": "Thanks for the WalEx mention!: https://github.com/cpursley/walex also, there\u2019s https://github.com/sequinstream/sequin if you want something more robust that already works with connectors and smokes debezium in terms of performance and is simpler to operate.", "context": "", "use_case": "", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}]}], "who": [], "tags": [], "use_cases": ["postgres change data capture", "cdc from postgres to iceberg", "change data capture"], "compared": [{"slug": "postgresql", "name": "PostgreSQL", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "apache-kafka", "name": "Apache Kafka", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "willow", "name": "Willow", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 735266480, "item_id": 45954155, "url": "https://news.ycombinator.com/item?id=45954155", "by": "gunnarmorling", "date": "2025-11-17", "version": null, "stance": "recommend", "quote": "work towards exactly-once has been done", "excerpt": "They can happen, yes, although this should be a rather rare event (the most common reason would be misconfiguration, such as a K8s pod with too low memory limits). That said, work towards exactly-once has been done [1], utilizing the support for EOS in Kafka Connect (KIP-618). In particular for Postgres, consumers can detect and reject duplicates really easy though, by tracking a watermark for the {Commit LSN / Event", "context": "", "use_case": "Streaming Postgres change events", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 735234368, "item_id": 45952148, "url": "https://news.ycombinator.com/item?id=45952148", "by": "gunnarmorling", "date": "2025-11-17", "version": null, "stance": "recommend", "quote": "Debezium generally produces each change event exactly once if there are no unclean connector shut-downs.", "excerpt": "Debezium generally produces each change event exactly once if there are no unclean connector shut-downs. If that's not the case, I'd consider this a bug which ought to be fixed. (Disclaimer: I used to lead the Debezium project)", "context": "Former Debezium project lead", "use_case": "", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 735234016, "item_id": 45952126, "url": "https://news.ycombinator.com/item?id=45952126", "by": "gunnarmorling", "date": "2025-11-17", "version": null, "stance": "recommend", "quote": "Robustness is a key design goal of Debezium.", "excerpt": "Robustness is a key design goal of Debezium. It supports heart beating to address WAL growth issues (wrote about that issue at [1]). If Kafka crashes (or Debezium itself), it will resume consuming the replication slot from where it left off before (applying at-least once semantics, i.e. there can be duplicates in case of an unclean shut-down). Naturally, if the consumer is down, WAL retained for that replication slot", "context": "former Debezium project lead", "use_case": "Postgres change data capture", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}], "threads": [{"url": "https://news.ycombinator.com/item?id=45885768", "title": "Listen to Database Changes Through the Postgres WAL", "mentions": 7}, {"url": "https://news.ycombinator.com/item?id=49520764", "title": "Debezium loses LSN position during PostgreSQL failover and what to do about it", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49238050", "title": "How We Pushed CDC into Postgres", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48348429", "title": "Show HN: Streambed \u2013 Stream Postgres to Iceberg on S3, Supports Postgres Wire", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46466073", "title": "Ask HN: Who wants to be hired? (January 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46460676", "title": "Marmot \u2013 A distributed SQLite server with MySQL wire compatible interface", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 2, "compare": 1, "warn": 1}, "2025-12": {"recommend": 1}, "2026-01": {"neutral": 2}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {"neutral": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {"warn": 1}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "quotes": [{"id": 793287952, "item_id": 49580497, "url": "https://news.ycombinator.com/item?id=49580497", "by": "gunnarmorling", "date": "2026-09-05", "version": null, "stance": "neutral", "quote": "allows you to point Debezium to a promoted stand-by after failover and resume from there, no events will be missed", "excerpt": "The editorialized title doesn't reflect the original one (\"How to Survive Database Failover \u2013 Debezium and PostgreSQL in Production\"), nor does it correctly represent how these systems behave. Postgres 16 added support for replication slots on stand-by servers, which allows you to point Debezium to a promoted stand-by after failover and resume from there, no events will be missed. It required manual advancement of th", "context": "", "use_case": "", "switched_from": "", "story": "Debezium loses LSN position during PostgreSQL failover and what to do about it"}, {"id": 787819633, "item_id": 49238727, "url": "https://news.ycombinator.com/item?id=49238727", "by": "gopalv", "date": "2026-08-09", "version": null, "stance": "warn", "quote": "dezebium and delta lake for quite some time but it would fail compactions", "excerpt": "This was basically Vertica's party trick for quite a long time to have a WOS and ROS formats for the same row and anti-caching between those two. You could've built a similar system with dezebium and delta lake for quite some time but it would fail compactions, if you run it fast enough. I've seen Oracle GoldenGate 12c do this trick in 2014 or so, using Mysql as the cheap replica. But they are all fragile to schema u", "context": "", "use_case": "", "switched_from": "", "story": "How We Pushed CDC into Postgres"}, {"id": 773624898, "item_id": 48351556, "url": "https://news.ycombinator.com/item?id=48351556", "by": "buremba", "date": "2026-05-31", "version": null, "stance": "neutral", "quote": "I was thinking of using Debezium", "excerpt": "Looks interesting! It reminds me of pg_lake, which we evaluated for our startup https://lobu.ai but it's missing a lot of pushdown capabilities which made OLAP queries expensive. I also tried DuckLake but that required us to move away from PG-first approach. I was thinking of using Debezium to create Iceberg on S3 for our append-only PG tables and use DuckDB. I will try Streambed out as well!", "context": "", "use_case": "CDC from Postgres to Iceberg", "switched_from": "", "story": "Show HN: Streambed \u2013 Stream Postgres to Iceberg on S3, Supports Postgres Wire"}, {"id": 743958162, "item_id": 46497385, "url": "https://news.ycombinator.com/item?id=46497385", "by": "cameronbibb", "date": "2026-01-05", "version": null, "stance": "neutral", "quote": "Debezium", "excerpt": "Location: Kentucky, US Remote: Yes Willing to relocate: No Technologies: JavaScript/TypeScript, React, Node.js, Ruby, PostgreSQL, SQL, MongoDB, Kafka, Debezium, Change Data Capture (CDC), Redis, Docker, Jest, Express, WebSockets R\u00e9sum\u00e9/CV: https://cameronbibb.com/assets/files/Cameron_Bibb_Resume.pdf Email: cameronbibb@gmail.com Hey, I'm Cameron! I enjoy building dynamic, high-performance applications\u2014ranging from res", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who wants to be hired? (January 2026)"}, {"id": 743436977, "item_id": 46464811, "url": "https://news.ycombinator.com/item?id=46464811", "by": "hardwaresofton", "date": "2026-01-02", "version": null, "stance": "neutral", "quote": "I thought debezium was mostly for moving around CDC records, not a backup tool per say.", "excerpt": "Thanks for the consideration! The reason something like litestream is interesting to me is that it\u2019s (now[0]) an off the shelf way to do PITR backups for SQLite. Sure, I could piece together or write something myself to catch the CDC stream or run another replica, but simply running one more process on one of the boxes and having peace of mind that there\u2019s an S3 backup continuously written is quite nice. I thought de", "context": "", "use_case": "", "switched_from": "", "story": "Marmot \u2013 A distributed SQLite server with MySQL wire compatible interface"}, {"id": 742256945, "item_id": 46391059, "url": "https://news.ycombinator.com/item?id=46391059", "by": "ahachete", "date": "2025-12-26", "version": null, "stance": "recommend", "quote": "we're really happy with Debezium in general", "excerpt": "> \"As part of the acquisition, we made an important decision: not only to keep PeerDB open source\" > \"Here goes the Open Source reference to our validation logic.\" > \"PeerDB Open Source Repository\" I hate to be that guy, but PeerDB seems to be governed by the Elastic License [1] which makes it NOT open source. The difference is not small, but significant for many. For one, it won't get integrated into other OSS proje", "context": "", "use_case": "Postgres change data capture", "switched_from": "", "story": "Lessons from a year of Postgres CDC in production"}, {"id": 735252768, "item_id": 45953298, "url": "https://news.ycombinator.com/item?id=45953298", "by": "nchmy", "date": "2025-11-17", "version": null, "stance": "recommend", "quote": "it is clearly the most mature, most stable option in the space, with the best prospects for long-term survival. Highly recommended", "excerpt": "Debezium published this doc on Exactly-once delivery with their most recent 3.3.0 version. They dont support it natively, but say it can be achieved via Kafka Connect https://debezium.io/documentation/reference/stable/configuration/eos.html You could probably achieve something similar with the NATS Jetstream sink as well, which has similar capabilities - though I think it doesnt have quite the same guarantees. I swit", "context": "", "use_case": "Postgres change data capture", "switched_from": "ConduitIO", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 735235393, "item_id": 45952212, "url": "https://news.ycombinator.com/item?id=45952212", "by": "cpursley", "date": "2025-11-17", "version": null, "stance": "warn", "quote": "smokes debezium in terms of performance", "excerpt": "Thanks for the WalEx mention!: https://github.com/cpursley/walex also, there\u2019s https://github.com/sequinstream/sequin if you want something more robust that already works with connectors and smokes debezium in terms of performance and is simpler to operate.", "context": "", "use_case": "", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 735232465, "item_id": 45952029, "url": "https://news.ycombinator.com/item?id=45952029", "by": "oulipo2", "date": "2025-11-17", "version": null, "stance": "compare", "quote": "Should I use the WAL/Debezium/etc?", "excerpt": "The post seems to say that NOTIFY is generally not a good idea, then comments here say that NOTIFY can actually work, but it depends on some particular things (which are not easy to know for newcomers to Postgres), makes it a bit complicated to know what is the way to go for a new database In my case I have an IoT setting, where my devices can change their \"DesiredState\", and I want to listen on this to push some mes", "context": "", "use_case": "", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 735221168, "item_id": 45951323, "url": "https://news.ycombinator.com/item?id=45951323", "by": "davidelettieri", "date": "2025-11-16", "version": null, "stance": "recommend", "quote": "It's worth mentioning debezium https://debezium.io/", "excerpt": "It's worth mentioning debezium https://debezium.io/ It allows to publish all changes from the db to Kafka.", "context": "", "use_case": "Change data capture", "switched_from": "", "story": "Listen to Database Changes Through the Postgres WAL"}, {"id": 733201554, "item_id": 45825097, "url": "https://news.ycombinator.com/item?id=45825097", "by": "cameronbibb", "date": "2025-11-05", "version": null, "stance": "neutral", "quote": "It leverages Kafka, Debezium, and PostgreSQL to process database changes in real time.", "excerpt": "Location: Kentucky, US Remote: Yes Willing to relocate: No Technologies: JavaScript/TypeScript, React, Node.js, Ruby, PostgreSQL, SQL, MongoDB, Kafka, Debezium, Change Data Capture (CDC), Redis, Docker, Jest, Express, WebSockets R\u00e9sum\u00e9/CV: https://cameronbibb.com/assets/files/Cameron_Bibb_Resume.pdf Email: cameronbibb@gmail.com Hey, I'm Cameron! I enjoy building dynamic, high-performance applications\u2014ranging from res", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who wants to be hired? (November 2025)"}]}