驚くほどシンプルにリアルタイムなデータ同期を利用できます
デモを見るRealm Platformはリアルタイムの
データ同期を自動化します
リアルタイムの自動データ同期
“ライブ”オブジェクトは自動的にデバイスとサーバー間で最新の状態に更新されます。変更通知をセットアップし、ローカルデータベースに書き込むだけで、データは他のユーザーと自動的に同期します。必要なコードはたった数行です。
自動的なコンフリクトの解消
Realmの自動コンフリクト解決の仕組みは複数の同時書き込みに対しても、予測可能なデータのマージを保証しています。そのため、ほぼすべてアプリケーションにおける要求を満たしています。
既存のアプリにデータ同期を追加する
Realmはデーアストアとして、そしてリアルタイム同期のソリューションとして、または単に新機能のために追加できます。Realmを使うためにデータモデルをすべて入れ替えるようなことはありません。
動作の仕組み
悩むことのないデータ同期
-
ストレスのないデータ同期
Realm Object Serverは自動データ同期、シンプルな認証、アクセスコントロール、イベントハンドリングなど必要なすべての機能を提供します。どこにでもデプロイでき、簡単に既存システムと統合します。
-
複雑なことはRealmに任せましょう
アプリはRealmをローカルデータベースのように使用するだけです。内部的にRealmの同期サービスがバックグラウンドで動作し、Realm Object Serverとのデータのやりとりを完全に管理します。
-
オフライン状態を気にすることはありません
Realmはまるでローカルデータベースのように動作するので、オフライン状態であっても変わらずに使い続けられます。オンライン状態に再接続した際に、Realmは自動的にデータ同期を再開します。
コンフリクトのない世界
Realmの自動コンフリクト解決は、デフォルトの動作では下記の基本ルールに従います。たとえ異なる順序で同じデータに書き込んだとしても、すべてのデータが同じ状態になることを保証します。
-
削除はすべてに優先する
どちらかのデバイスでオブジェクトが削除された場合は、変更が同期される前にもう一方のデバイスから変更されたとしても、オブジェクトは削除されます。
-
後に発生した変更が優先
同じプロパティを複数のデバイスが変更した場合、後に行われた変更が採用されます。
-
リスト型への挿入は時間順になる
リスト型のオブジェクトに複数のデバイスから同じ位置にオブジェクトが追加された場合、先に追加されたオブジェクトが前の順序に位置し、もう一つはその後ろに追加されます。つまり、末尾にほとんど同時にオブジェクトを追加したとすると、追加順にオブジェクトが並びます。
これまでにないくらいシンプルなデータモデルの更新
機能追加のために新しいフィールドが必要になったらどうなりますか?ただモデルに追加するだけで動作します。追加のコーディングやマイグレーションは不要です。新しいフィールドはサーバーサイド(Enterprise EditionではNode.jsを用いてデータモデルを変更できます。)、クライアントサイド(アプリケーション側でモデルを変更し、アップデートします。)のどちらの変更でも自動的に追加されます。アプリはそのまま問題なく動きます。
デモをお試しください
Draw app
非常にシンプルにリアルタイム同期機能を利用しているお絵かきアプリです。2人のユーザーが同時に1つのキャンバスに接続します。どちらかのユーザーが絵を描くと、もう一方のユーザーの画面にも即座に反映されます。座標と色のデータを保存し同期するという仕組みで実現しています。
-
必要なデータだけを共有する
リアルタイムデータ同期で難しいことはどのデータを共有するかを考えることです。このアプリでは非常に効率的なデータモデルを採用しています。具体的には線を表現する座標データとペンの色を示すデータを同期しています。
-
コンフリクトをエレガントに自動的に解決する
このアプリはシンプルで1つのレイヤーにビットマップを描画するだけです。Realmのコンフリクト解消のルールはすべての線はたとえオフラインであっても最終的に描かれた順序で表されることを保証します。
-
新機能はデータモデルを追加するだけ
データはすべてのユーザーに同期されます。機能を追加したとしても、例えば図形ツールを新たに導入するとしたら、単に図形ツールに必要なデータ構造を定義してUIを更新するだけです。