Abstract
Google’s Firestore is a NoSQL serverless database service that scales to millions of queries per second and petabytes of storage, serving over 8 million databases and 1.5 billion monthly active end users. A key reason for its popularity is its unique realtime query feature, which greatly simplifes web and mobile application development. Realtime queries allow an application to present an up-to-date and strongly-consistent view of the state of the database to the end-user, and to receive fast notifications of changes to the database state.
In this paper we present the architecture of the Firestore realtime stack, how it provides seamless scaling and high availability while supplying strongly-consistent responses to clients, including evaluations simulating workloads that represent large applications. We also explain how the Firestore SDK enables the application to deliver a smooth user experience through periods of network disconnection.