EventSourcingDB 1.3.0は、HTTPステータスコードに依存するのではなく、リクエストの結果をレスポンスボディに直接報告することで、データベースとクライアントの通信方法を根本的に変える新しいv2 APIを導入します。この変更は60以上のバグ修正と組み合わされ、イベントソースド・アーキテクチャ上で開発を行うエンジニアに対して、より安定した高速な体験を提供することを目指しています。
v2 APIとエラー処理
v2 APIでは、リクエストが認証、スキーマ検証、およびリソース制限を通過した後にのみ「承認済み(accepted)」として扱われます。承認されると、サーバーはボディ内に結果を返し、クライアントは一般的なHTTPステータスコードを解釈する代わりに、特定のエラーコードを読み取ることができます。
各エラーコードは、原因と必要な修正方法を説明するドキュメントページへの直接的なリンクとして機能します。さらに、v2 APIは`isSubjectPristine`や`isSubjectPopulated`といった再帰的な前提条件を導入しており、これらはツリー構造におけるサブジェクトとそのすべての子供に適用できます。
「書き込みとEventQLクエリはかなり高速になり、読み込みも高速化されました。すべてのリクエストに時間制限が設けられ、60以上の修正が含まれています。」
— EventSourcingDB 1.3.0 is Available
パフォーマンスと安定性の最適化
バージョン1.3.0は、基礎となるストレージとクエリエンジンを最適化し、単一および同時クライアントの両方において書き込みを高速化します。また、複数のソースをグループ化、ソート、または結合する操作において、特にEventQLクエリのパフォーマンスを向上させています。
システムの安定性を確保するため、このアップデートではすべてのリクエスト、回答、およびアイドル接続に対して厳格なリソース制限を導入します。EventQLクエリは、単一のクエリによってスタックがオーバーフローしたりシステムメモリを使い果たしたりするのを防ぐため、ネストの深さとメモリ使用量によって制限されるようになります。
プロダクション対応と移行
新しいプロダクション向けの機能には、マシンのサイズに合わせてスケールするデフォルトのレート制限や、OpenMetrics互換のヘルスエンドポイントが含まれます。新しい`--require-event-schemas`フラグにより、管理者は登録済みのスキーマを持たないイベントの書き込みや復元を拒否できるようになります。
バージョン1.3.0へのアップグレードにはサーバーの完全停止が必要です。新しいバージョンはデータディレクトリをロックするため、ローリングアップデートは不可能です。また、1.3.0は古いSDKが改ざんデータとしてフラグを立てる新しいイベントハッシュバージョンを使用するため、ユーザーはアップグレード前にクライアントSDKを更新する必要があります。
