Cache for Cash—Speeding Up Production with Kafka and MySQL binlog

Note: Presentation times are in Coordinated Universal Time (UTC).

Friday, 15 October, 2021 - 03:1503:45

Barak Luzon, Taboola


How can you serve up-to-date information on a high scale production system? Our company provides content recommendations to billions of people. We have hundreds of frontend servers across 7 regions. They need to withstand a massive load of 500K HTTP requests per second while maintaining a fast response time. In order to do so, we rely heavily on in-memory caching. By design, caching has a tradeoff between data freshness and load. What if I tell you that you can have fresh data without creating the extra load of fetching it? Our journey started with a "fast track" we created using Kafka and Mysql binlog, and ended up with a huge performance and yield improvement across thousands of services with blazing fast information updates.

Barak Luzon, Taboola

"Trying is the first step towards failure", said the great Homer Simpson, and I would add that "Failing is the first step towards success." I've been around software since 2006, in various companies and positions, from C4 systems for intercepting rockets through E-commerce and Ad-Tech. I'm always keen to learn new technologies and test them to see how far to the edge I can take them. I practice this passion by day at Taboola with our team of rockstars, while by night I spend time on my second passion—brewing my own beer.

SREcon21 Open Access Sponsored by Indeed

@conference {276765,
author = {Barak Luzon},
title = {Cache for {Cash{\textemdash}Speeding} Up Production with Kafka and {MySQL} binlog},
year = {2021},
publisher = {USENIX Association},
month = oct

Presentation Video