Skip to main content
Version: 0.7.4

シリアル化 (Serialization)

Claptrap システムではイベントと状態を転送および格納する必要があるため、さまざまな転送およびストレージ シナリオに対応するために、イベントと状態をシリアル化する必要があります。

シリアル化スキームを選択する方法#

オプションのシリアル化方法は、:JSON、MessagePack、Protobuf など、さまざまな方法で実行できます。実際のプロジェクトでシリアル化されるシナリオは、次の点に基づいて検討できます:

  1. 読みやすさ。読みやすさが高いほど、テキストベースのシリアル化スキームを考慮する必要があります。
  2. 転送効率、ストレージ容量の使用率。転送効率とストレージ領域に対する要件が高い場合は、バイナリ ベースのシリアル化スキームを考慮する必要があります。

Claptrap システムでは、各 Claptrap には完全に独立したカスタマイズ性があるため、開発者は異なる Claptrap に対して異なるシリアル化スキームを選択できます。ただし、シリアル化スキームは、一度選択すると変更が難しいため、設計段階で慎重に検討する必要があります。

シリアル化とキャリアの独立性#

Claptrap フレームワークでは、ストレージ、トランスポート、およびシリアル化は互いに独立しています。つまり、転送時に読みやすい JSON シリアル化を使用し、ストレージの使用率を高めるバイナリ シリアル化を選択し、その逆も可能です。

シリアル化とキャリアの制約#

シリアル化の方法は、特定のストレージまたは転送されたキャリアに直面する場合にも制限されます。たとえば:現在、イベントの永続層としてバイナリ ダイレクト ストレージをサポートしていないデータベースを使用している場合、バイナリ シリアル化によってイベントを保存することを選択することは不可能になります。したがって、シリアル化スキームを選択する前に、転送とストレージのスキームを優先する必要があります。

現在、サポートされているすべてのシリアル化スキームは、nuget に "Newbe.Claptrap.DataSerializer.*" という名前で公開されています。