Google today launched a new database service for Firebase, its platform for app developers. The new Firestore database complements the existing Firebase Realtime Database and indeed, there's quite a bit of overlap between these two services.
As Firebase co-founder James Tamplin told me, the Realtime Database (RDB) was always the flagship product of the platform. The service is now in use by hundreds of thousands of developers. Tamplin argues that these developers love the service because it offers them access to a real-time database that is managed and scaled for them by Google.
He also admitted that as the team scaled and grew the service, it hit upon some developer pain points that the new Cloud Firestore is meant to overcome: RDB makes it difficult to deal with really complex queries and, because of the way the platform was architected, some of Firebase's largest customers often hit the service's hard limit of 100,000 concurrently connected devices and had to split their databases across shards, negating some of the advantages of using RDB in the first place.
Given how hard it would have been to completely re-build the existing database service to fulfill these new requirements, the team chose to simply built a new one. Firestore was designed from the ground up to support a number of use cases like making it easier for developers to build offline apps with the help of a local database for web, iOS and Android and to easily sync data between different apps and users in real time.
All of the data is automatically replicated across multiple regions and with strong consistency. Like its predecessor, Firestore can scale automatically.
The team also notes that its client-side SDK can handle an app's authentication and networking code while the backend offers a number of security rules to control access to the data and apply validation logic to it, too. Thanks to these features, you can connect your app directly to the database without using an intermediary server that would otherwise handle these validation steps.
Unsurprisingly, all of this is deeply integrated with the rest of the Firebase platform, including Google's Cloud Functions serverless platforms.