はじめに
Couchbase Mobileは、オフラインファーストアプリケーションの幅広いユースケースに対応することが可能です。
ここでは、Couchbase LiteとSync Gatewayとのデータ同期に関して、ローカルデータクリーンアップのための、設計パターンについて説明します。
プッシュ後にパージ
概要
Couchbase Liteは、イベント機能を介してドキュメントのレプリケーションステータスについてアプリに通知する機能をサポートしています。アプリはこの機能を利用して、ドキュメントのステータスに応じて、ドキュメントに対して適切なアクションを実行することができます。
この機能を利用して、ドキュメントがCouchbase Serverへ同期された後、ローカルデータベースからクリアすることができます。
ユースケース
ローカルデータベースの肥大化を回避するために、またはコンプライアンス上の理由から、サーバーに同期された後にローカルのデータベースからドキュメントを削除することが望ましい場合があります。
アプローチ
レプリケーターにレプリケーションイベントオブザーバーを登録します。
ドキュメントのonPushed
イベントを受信したら、purge()
APIを呼び出してドキュメントを削除します。パージされたドキュメントのステータスは同期されないため、サーバーにのみドキュメントが格納されることになります。
ドキュメントの有効期間を適用する
概要
Couchbase Liteは、ローカルドキュメントに有効期限を設定する機能をサポートしています。アプリはこの機能を利用して、サーバーへの接続に関係なく、Couchbase Lite上のドキュメントをローカルで期限切れにすることができます。
ユースケース
サーバー上で作成されたドキュメントは、ドキュメントがデータベース上に存続する期間であるTTL(Time To Live)、つまり有効期限を設定されている場合があります。ネットワーク接続がある環境でタイムリーに同期が行われている場合、サーバー側で削除されたドキュメントはクライアント側に同期されるため、クライアント側でも削除されます。ただし、クライアントがオフラインになっている場合があり、そのような場合であっても、有効期限切れのドキュメントをタイムリーにクライアントから削除することが重要な場合があります。
アプローチ
クライアントレプリケーターにレプリケーションイベントオブザーバーを登録します。
ドキュメントのPull
イベントを受信したら、Couchbase Lite側で、setExpirationDate()
APIを使用してドキュメントのTTLを設定します(TTLには、サーバーとクライアントとで同じ値を使うことも、あるいは要件に応じて別の値を使うことも考えられるでしょう)。
クライアントでドキュメントの有効期限が切れると、ネットワーク接続に関係なく、ドキュメントはクライアントから自動的に削除されます。
サーバー側では、Couchbase Serverの有効期限設定に従い、ドキュメントは削除されます。
参考情報