イベント ソーシング パターンを使用する iOS アプリケーションを構築しています。一連のイベントを再生することで、アプリケーションの状態をいつでも再構築できるようにする必要があります。
各イベントには UUID があります。アプリケーションの状態は、永続的な Core Data オブジェクト グラフに格納されます。
イベント ソーシングの私の特定の実装では、クライアントへのイベントの「少なくとも 1 回」の配信が保証されます。イベントが複数回配信された場合、これらの後続の配信がオブジェクト グラフに影響を与えないようにする必要があります。
イベント レコード (処理済みのイベント UUID のセット) を保持したいと考えています。このようにして、受信イベントをイベント レコードと照合し、既に処理されている場合は削除できます。
イベントレコードをどこに保存しますか?
永続化された Core Data グラフと「同期」する必要があります。特に、これは次のことを意味します。
- コア データ オブジェクト グラフが削除された場合、イベント レコードも削除する必要があります。
- イベント レコードは、Core Data オブジェクト グラフと連携して永続化する必要があります。