Version: Next
状態スナップショット (State Snapshot)
#
State Snapshot は、状態の復元速度を高速化しますアクティブな Claptrap で、その状態は現在の最新のデータ状態です。これは、イベント トレーサビリティによって永続化レイヤーから復元されます。場合によっては、イベントの数が膨大になる可能性があります。イベントを使用して State を復元するには、さらに時間がかかります。したがって、状態スナップショットは、特定の条件の後に特定の Claptrap の状態を保持するために、Claptrap フレームワークで提供されます。この条件は、通常、次の:
- いくつかのイベントが実行された後。
- Claptrap Deactive の場合。
- 一定の期間。
イベント スナップショットが存在すると、永続層から状態が復元される速度が向上します。永続化レイヤーにスナップショットが存在する場合、通常、状態の復元は次の手順で:
- 状態スナップショットを読み取ります。
- 状態スナップショットの対応するバージョン番号から開始し、状態の更新のためにすべてのイベントを後方に読み取ります。
- 永続化レイヤーに残っているイベントが残っていないまで状態を更新します。
ただし、スナップショットがない場合、復元手順は次のようになります:
- 初期状態を作成するには、メソッドをカスタマイズします。
- イベント ライブラリからすべてのイベントを読み取って、状態を更新します。
- 永続化レイヤーに残っているイベントが残っていないまで状態を更新します。
しかし。スナップショットの存在は、いくつかの特殊性をもたらす可能性があります。上記の作業手順と組み合わせると、スナップショットが作成されると、簡単に:
- ユーザーのカスタム メソッドは実行されにくされます。
- スナップショットのバージョン番号より小さいイベントは、再度実行されません。
現在、フレームワークは Id ごとに最後のスナップショットを 1 つしか保持できません。