Publication Data
Thialfi: A Client Notification Service for Internet-Scale Applications
Abstract: Ensuring the freshness of client data is a fundamental
problem for applications that rely on cloud infrastructure to store data and mediate
sharing. Thialfi is a notification service developed at Google to simplify this task.
Thialfi supports applications written in multiple programming languages and running on
multiple platforms, e.g., browsers, phones, and desktops. Applications register their
interest in a set of shared objects and receive notifications when those objects
change. Thialfi servers run in multiple Google data centers for availability and
replicate their state asynchronously. Thialfi's approach to recovery emphasizes
simplicity: all server state is soft, and clients drive recovery and assist in
replication. A principal goal of our design is to provide a straightforward API and
good semantics despite a variety of failures, including server crashes, communication
failures, storage unavailability, and data center failures. Evaluation of live
deployments confirms that Thialfi is scalable, efficient, and robust. In production
use, Thialfi has scaled to millions of users and delivers notifications with an average
delay of less than one second.
