Sleeping at Scale - Delivering 10k Timers per Second per Node with Rust, Tokio, Kafka, and Scylla

QCon San Francisco 2023

Session Architecture

Sleeping at Scale - Delivering 10k Timers per Second per Node with Rust, Tokio, Kafka, and Scylla

Monday Oct 2 / 05:05PM PDT, Ballroom A

Abstract

As a part of OneSignal’s no-code Journeys system, we knew that we would need a way to store billions of timers. OneSignal delivers over 11 billion notifications per day, and we would potentially need to store a timer event alongside each of these for customer-defined journeys like “send a notification, wait 24h, send another notification if a condition is met.” After searching the paid and open-source worlds for off-the-shelf solutions, we decided that our best option was to build a system that could store and expire timers for ourselves. Ingesting data via gRPC, persisting to Scylla, and expiring to Kafka via a Rust scheduler has proved to be a great solution for us. This talk walks through the design of this system, its performance characteristics, and how we’ve scaled it since it began as a single-node service for the first year and a half of its existence.

Topics

Architecture Rust Concurrency Database
76% senior dev or higher
1:11 speaker ratio
60+ practitioners

QCon San Francisco 2023 is a three day conference for senior software engineers, architects and team leads. An international program committee of working engineers selects every session. Patterns and practices, not products and pitches.

Share

From the same track

Monday 2 October

10:35 Ballroom A Session Graph Databases LIquid: A Large-Scale Relational Graph Database Scott Meyer Distinguished Software Engineer @LinkedIn, Creator of the Graph Database, LIquid, Metaweb/freebase Alum 11:45 Seacliff ABC Session Data PRQL: A Simple, Powerful, Pipelined SQL Replacement Aljaž Mur Eržen Compiler Developer @EdgeDB & PRQL Maintainer 13:35 Ballroom A Session Stream Processing Streaming Databases: Embracing the Convergence of Stream Processing and Databases Yingjun Wu Founder and CEO @RisingWave Labs, Previously Engineer @AWS Redshift & Researcher @IBM Research Almaden 14:45 Ballroom A Session Distributed Systems Redesigning OLTP for a New Order of Magnitude Joran Greef Founder and CEO @TigerBeetle 15:55 Ballroom A Session Data Lakes Incremental Data Processing with Apache Hudi Saketh Chintapalli, Bhavani Sudha Saktheeswaran 17:05 Ballroom A Session Architecture Sleeping at Scale - Delivering 10k Timers per Second per Node with Rust, Tokio, Kafka, and Scylla Lily Mara, Hunter Laine