Version: 0.7.4

状態スナップショット (State Snapshot)

State Snapshot は、状態の復元速度を高速化します#

アクティブな Claptrap で、その状態は現在の最新のデータ状態です。これは、イベント トレーサビリティによって永続化レイヤーから復元されます。場合によっては、イベントの数が膨大になる可能性があります。イベントを使用して State を復元するには、さらに時間がかかります。したがって、状態スナップショットは、特定の条件の後に特定の Claptrap の状態を保持するために、Claptrap フレームワークで提供されます。この条件は、通常、次の:

  1. いくつかのイベントが実行された後。
  2. Claptrap Deactive の場合。
  3. 一定の期間。

イベント スナップショットが存在すると、永続層から状態が復元される速度が向上します。永続化レイヤーにスナップショットが存在する場合、通常、状態の復元は次の手順で:

  1. 状態スナップショットを読み取ります。
  2. 状態スナップショットの対応するバージョン番号から開始し、状態の更新のためにすべてのイベントを後方に読み取ります。
  3. 永続化レイヤーに残っているイベントが残っていないまで状態を更新します。

ただし、スナップショットがない場合、復元手順は次のようになります:

  1. 初期状態を作成するには、メソッドをカスタマイズします。
  2. イベント ライブラリからすべてのイベントを読み取って、状態を更新します。
  3. 永続化レイヤーに残っているイベントが残っていないまで状態を更新します。

しかし。スナップショットの存在は、いくつかの特殊性をもたらす可能性があります。上記の作業手順と組み合わせると、スナップショットが作成されると、簡単に:

  1. ユーザーのカスタム メソッドは実行されにくされます。
  2. スナップショットのバージョン番号より小さいイベントは、再度実行されません。

現在、フレームワークは Id ごとに最後のスナップショットを 1 つしか保持できません。