4

過去 10 分以内に変更されたすべてのエンティティを取得するために、自動化されたポーラー (10 分間隔で設定) を持つイベント ストリームの作成を任されています。

現在、ビジネス ロジックでは、エンティティ内の特定のフィールドが変更された場合にのみ、新しい更新イベントを作成するように指示されています。どの特定のフィールドが変更されたかについての粒度がないため (何かが変更されたということしかわかりません)、次のことを実行する何らかの差別化メソッドを作成する必要があります。

  1. 以前のエンティティの状態を取得します
  2. この以前の状態を最新の状態と比較します (つまり、差分)
  3. ビジネス ロジックが重要であると判断したフィールドの少なくとも 1 つがあれば、更新イベントを作成します。
  4. 更新イベントが作成されている場合は、以前のエンティティの状態を最新のものに置き換えます

このアーキテクチャ上の問題を考慮して、このタイプのシステムを構築する方法に関する既知のパターンまたは一連のパターン、またはガイドラインはありますか?

4

2 に答える 2

3

オブザーバー パターンイテレーター パターン、およびリアクティブ プログラミングのパラダイムを見てみましょう。

これらは、状態変化 (またはイベント) の処理に対処するかなり一般的なアプローチであることに注意してください。実装は、使用しているプログラミング言語と操作環境によって異なります。ReactiveX (クロスプラットフォーム) やSpring WebFlux (Java)などの既存のフレームワークやライブラリを探す必要があります。

概念間の関係についての興味深い議論があります

于 2019-11-13T13:03:06.757 に答える