Traditionally, MySQL has been used to power most of the backend services at Bolt. We’ve designed our schemas in a way that they’re sharded into different MySQL clusters. Each MySQL cluster contains a subset of data and consists of one primary and multiple replication nodes.
Once data is persisted to the database, we use the Debezium MySQL Connector to capture data change events and send them to Kafka. This gives us an easy and reliable way to communicate changes between back-end microservices.
Sr. Software Engineer at Bolt. Author of Debezium Vitess Kafka Connector. Focusing on Kafka, Change Data Capture, and real-time analytics. Twitter: @keweishang