


Meanwhile, Debezium guarantees at-least-once delivery. However, one of the biggest challenges we had was its fragility: when either Debezium or the MySQL slave goes down, the CDC stream would simply stop. The teams quickly reached a consensus that this stack could be useful for both SOA migration and the simplification of backend data tracking. We deployed into production pretty quickly a simple CDC stack to prove the concept. It supports MySQL, MongoDB, PostgreSQL and Oracle. It’s a Kafka source connector that streams the changes from database to kafka topics.
#Deduplicator operator software
CDC and DebeziumĬhange Data Capture is a software design pattern which records INSERTs, UPDATEs and DELETEs applied to database tables, and makes a record available of what changed, where, and when.ĭebezium is an open source project that provides a low latency data streaming platform for change data capture (CDC). In this post, we will explain how this CDC stack was built and focus more specifically on how we made it highly reliable.

Moreover, reliable CDC data can be used to simplify our current backend data tracking stack and reduce friction between developing new features and collecting data for Business Intelligence. The CDC data can be considered as a source of truth so that the services can compare the data with their own and report metrics if there’s any inconsistency and eventually, correct the buggy data with the truth. In order to answer all these questions, we built a reliable Change Data Capture (CDC) stack, allowing services to observe all the database changes of the monolith MySQL database.
#Deduplicator operator code
However, how can we guarantee the data consistency between the monolith and the services? How do we know when the services behave in the same way as the monolith? When do we know whether a service is ready to be relied upon and the related code and data in the monolith can be trashed? The whole process feels like replacing the engines of a flying aircraft. Meanwhile, the business obviously needs to keep running, new features and fixes need to be implemented continuously. The monolith code is carefully being removed piece by piece until it will be completely replaced by services.
#Deduplicator operator upgrade
In order to scale, starting from early 2017, we decided to upgrade this backbone: migrate the monolith to a Service Oriented Architecture (SOA).ĭuring the migration, the monolith and the SOA must co-exist in production. Its backend was historically a PHP monolith with hundreds of async workers around a RabbitMQ broker and a bunch of scheduled cron jobs. The software architecture of BlaBlaCar is being challenged by its growth and team organization.
