Googleが今日、アプリデベロッパーのためのプラットホームFirebase用に、新しいデータベースサービスを立ち上げた。そのCloud Firestoreと呼ばれるデータベースは既存のFirebase Realtime Databaseを補完するもので、両者の重複部分も多い。
Firebaseの協同ファウンダーJames Tamplinによると、Realtime Database(RTDB)はつねに、Firebaseプラットホームの旗艦的プロダクトであった。そのサービスは今や、数十万ものデベロッパーに利用されている。そしてTamplinの説では、デベロッパーにそれほど人気があるのは、データベースアクセスがリアルタイムであり、しかも管理やスケールアップ/ダウンはGoogleがやってくれるからだ。
彼によると、しかしそうやってサービスの規模が大きくなると、デベロッパーが不満を感じる部分も出てきたので、それを解決するためにCloud Firestoreを立ち上げた。不満はたとえば、RTDBでは複雑なクエリを扱いにくい。プラットホームのアーキテクチャのせいで、同時接続デバイス数が10万を超えるとシャーディングでデータベースを分割しなければならない。それでは、RTDBの本来の利点がなくなってしまう。
既存のデータベースサービスの改築工事はきわめて困難なので、チームは新築を選んだ。Cloud Firestoreはまったく新たに設計され、さまざまなユースケースをサポートする。たとえば、ローカルなデータベースを併用してオフラインのアプリを作るとか、複数のアプリやユーザー間でデータのリアルタイムのシンクができる、など。
すべてのデータが複数のリージョンにまたがって自動的に複製され、整合性も完璧だ。また、前と同様、スケーリングは自動的に行う。
さらに、Cloud Firestoreのクライアント側SDKにはアプリの認証やネットワーキングのコードもあり、またそのバックエンドは、いくつかのセキュリティルールによりデータへのアクセスを制御し、ユーザーの正当性を検証する。したがってアプリは、ユーザー確認のためのプロキシなどを使わずに、直接データベースにアクセスできる。
そしてもちろん、これらがすべてFirebaseのプラットホームに深く統合されている。したがってGoogleのサーバーレスプラットホームCloud Functionsも使える。