logoalt Hacker News

karakanbtoday at 3:51 PM3 repliesview on HN

Disclaimer: I am cofounder of Bruin (https://github.com/bruin-data/bruin), we are a competitor to Erathos.

It seems like a relatively straightforward marketing article. I was pleasantly surprised to learn about Erathos though, nice product!

I am personally not a big fan of CDC in prod. Streaming data movement is generally prone to confusion, and it feeds into bad data patterns like hard deletes without any audit logs, no timestamps on updates or deletes, etc. which are usually the reason why batch loads cannot be utilized. They require a decent operational understanding of the underlying database, and have some gotchas like the Erathos folks mentioned in the article. We offer CDC both in our cloud platform, as well our open-source tools, but if I could, I would always pick an incremental batch load with a cursor value over a CDC connection.

I understand it is sometimes required due to organizational complexity or legacy database reasons, mine is just a personal preference.

If anyone is looking for an open-source CDC tool that runs as a standalone Go CLI, check out ingestr: https://github.com/bruin-data/ingestr


Replies

fovctoday at 4:33 PM

> I would always pick an incremental batch load with a cursor value over a CDC connection.

What's the benefit vs. something like Postgres's logical replication for CDC? IMO, the hard part of CDC is maintaining consistency in the face of potential network issues or downstream slowdowns. One is forced to choose between scylla: generate excess trx logs if replication slows, and charybdis: lose consistency. I don't see how an open transaction helps here?

javier2today at 4:37 PM

I have no horse in this race, but CDC sounds more robust? It will capture all changes, regardless of how the application maintainers use the database.

show 1 reply
LogTrimtoday at 4:18 PM

[dead]