Change Data Capture For All Of Your Databases With Debezium

00:00:00
/
00:53:01

January 5th, 2020

53 mins 1 sec

Your Host

About this Episode

Summary

Databases are useful for inspecting the current state of your application, but inspecting the history of that data can get messy without a way to track changes as they happen. Debezium is an open source platform for reliable change data capture that you can use to build supplemental systems for everything from maintaining audit trails to real-time updates of your data warehouse. In this episode Gunnar Morling and Randall Hauch explain why it got started, how it works, and some of the myriad ways that you can use it. If you have ever struggled with implementing your own change data capture pipeline, or understanding when it would be useful then this episode is for you.

Announcements

  • Hello and welcome to the Data Engineering Podcast, the show about modern data management
  • When you’re ready to build your next pipeline, or want to test out the projects you hear about on the show, you’ll need somewhere to deploy it, so check out our friends at Linode. With 200Gbit private networking, scalable shared block storage, and a 40Gbit public network, you’ve got everything you need to run a fast, reliable, and bullet-proof data platform. If you need global distribution, they’ve got that covered too with world-wide datacenters including new ones in Toronto and Mumbai. And for your machine learning workloads, they just announced dedicated CPU instances. Go to dataengineeringpodcast.com/linode today to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to dataengineeringpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.
  • Your host is Tobias Macey and today I’m interviewing Randall Hauch and Gunnar Morling about Debezium, an open source distributed platform for change data capture

Interview

  • Introduction
  • How did you get involved in the area of data management?
  • Can you start by describing what Change Data Capture is and some of the ways that it can be used?
  • What is Debezium and what problems does it solve?
    • What was your motivation for creating it?
    • What are some of the use cases that it enables?
    • What are some of the other options on the market for handling change data capture?
  • Can you describe the systems architecture of Debezium and how it has evolved since it was first created?
    • How has the tight coupling with Kafka impacted the direction and capabilities of Debezium?
    • What, if any, other substrates does Debezium support (e.g. Pulsar, Bookkeeper, Pravega)?
  • What are the data sources that are supported by Debezium?
    • Given that you have branched into non-relational stores, how have you approached organization of the code to allow for handling the specifics of those engines while retaining a common core set of functionality?
  • What is involved in deploying, integrating, and maintaining an installation of Debezium?
    • What are the scaling factors?
    • What are some of the edge cases that users and operators should be aware of?
  • Debezium handles the ingestion and distribution of database changesets. What are the downstream challenges or complications that application designers or systems architects have to deal with to make use of that information?
    • What are some of the design tensions that exist in the Debezium community between acting as a simple pipe vs. adding functionality for interpreting/aggregating/formatting the information contained in the changesets?
  • What are some of the common downstream systems that consume the outputs of Debezium?
    • What challenges or complexities are involved in building clients that can consume the changesets from the different engines that you support?
  • What are some of the most interesting, unexpected, or innovative ways that you have seen Debezium used?
  • What have you found to be the most challenging, complex, or complicated aspects of building, maintaining, and growing Debezium?
  • What is in store for the future of Debezium?

Contact Info

Parting Question

  • From your perspective, what is the biggest gap in the tooling or technology for data management today?

Closing Announcements

  • Thank you for listening! Don’t forget to check out our other show, Podcast.__init__ to learn about the Python language, its community, and the innovative ways it is being used.
  • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
  • If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@dataengineeringpodcast.com) with your story.
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
  • Join the community in the new Zulip chat workspace at dataengineeringpodcast.com/chat

Links

The intro and outro music is from The Hug by The Freak Fandango Orchestra / CC BY-SA

Support Data Engineering Podcast