約 10 種類のオブジェクトを持つアプリがあります。各タイプのオブジェクト インスタンスが数千になる可能性があります。これらのオブジェクトのリストは、異なるマシンで実行されているアプリ間で同期を維持する必要があります。オブジェクトが追加、変更、または削除された場合、それを他のマシンに伝達する必要があります。
これはスター トポロジになります。中央のマスターがあり、残りはクライアントです。
私はセッションの概念を持っているので、各クライアントに関するデータを保存できます。
これに従うべき良い設計パターンはありますか?さらに良いことに、クライアント X がやってきてから何が変わったのかをコンテナーに問い合わせ、そのデルタを送信するように処理する (テンプレート ベースの?) ライブラリはありますか?
現在、すべてのオブジェクト タイプのコンテナには更新カウンタがあると考えています。何かが追加/変更/削除されると、更新カウンターがインクリメントされ、変更されたオブジェクトがその値でタグ付けされます。各クライアントは、更新を取得すると、更新カウンターの値を保存します。後で戻ってきて、更新カウンター値であるため、変更を要求します。最後に、削除は廃棄レコードとして保持されます (ただし、いつ削除するかは正確にはわかりません)。
これをより困難にしているのは、クライアントが中央サーバーが必ずしも知らなくても出入りできることですが、タイムアウトの概念がある可能性があると思います (サーバーがクライアントから 5 分間応答がない場合、クライアントがなくなったと見なされます)。
これは有名なパターンですか?追加の提案はありますか?