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.
Speaker
Lily Mara
Engineering Manager @OneSignal, Author of "Refactoring to Rust"
Lily Mara is an Engineering Manager at OneSignal in San Mateo, CA. She manages the Core Services team, which is responsible for in-house services used by other OneSignal engineering teams. Previously she was a software engineer at OneSignal, leading the efforts to create OneSignal's integration with Mixpanel, develop the outcomes system, and improving performance and code simplicity through refactoring efforts. Lily also worked as a software developer at Kroger, working on Kroger’s online grocery ordering system as well as internal development tools to aid other teams in deployments, monitoring, and local development environments.
Lily is the author of Refactoring to Rust, an early-access book by Manning Publications about improving the performance of existing software systems through the gradual addition of Rust code.
Find Lily Mara at:
Speaker
Hunter Laine
Software Engineer @OneSignal
Hunter Laine is a Software Engineer on the Infrastructure Services team at OneSignal in San Mateo, CA. In this role, she helps to maintain and improve in-house services used by internal engineering teams. In this capacity, Hunter led a major migration of one of OneSignal’s most trafficked endpoints from a legacy Ruby on Rails codebase into a faster, more efficient and maintainable Go codebase. She spearheaded scaling OneSignal’s timer scheduler infrastructure from a single-tenant service to a multi-tenant service.
Prior to her work at OneSignal, Hunter has held positions as a Marketing Operations Manager abroad. OneSignal has been an incredible place to learn quickly and take a lead role in major initiatives.