サーバー ソフトウェア内部の信頼できるキューイング メカニズムとしてEventStoreを評価しようとしています。
MSMQ は、メッセージの「会話」内の部分的な順序付け、順序付けられたメッセージをサポートできないため、代替として失敗します。また、メッセージ サイズの制限が 4MB であるため (これは部分的な順序付けで克服できます)。SQL Service Broker は部分的な順序付けをサポートしていますが、プログラムでセットアップして管理するのは面倒です。
EventStore に関するドキュメントは確かにまばらなので、EventStore の経験のある人は次のことを手伝ってくれますか?
- EventStore はイベントのトランザクション処理をサポートしていますか? つまり、処理が失敗した場合、デキューをロールバックできますか?
- さまざまなスレッド、プロセス、またはマシンに複数のリーダーがある場合、EventStore は、各イベントが (一度に、おそらくトランザクション中に) 1 つのリーダーにのみディスパッチ (?) されるように強制します。
- 上記が可能であると仮定すると、異なる「会話」のイベントを任意の順序で同時に読み取ることができますが、同じ会話のメッセージは個別に順番に読むことができますか?
- EventStore は基本的に「少なくとも 1 回」の配信であると読みました。特定のストレージ プロバイダーを使用して、「1 回だけ」の配信を保証することは可能ですか?
- 「毒」イベントはどのように処理されますか? 処理中にエラーになるイベント。おそらく、エラーは本質的に一時的なものであり、再試行できます。おそらく、それは本質的に永続的であり、管理者の介入が必要です。
- 必要に応じて EventStore ストレージを手動で操作できますか? 他の読者が読み続けている間にそれを行うことはできますか?
(ストレージ エンジンでのトランザクションは必須ではないことを読みましたが、私はまだトランザクションの言語を使用して、EventStore レベルでのトランザクションを置き換えるものを意味します。トランザクションからあらゆるものへの切り替えで重大な機能上の結果がある場合は、それらについてコメントしてください。 . すぐにすべての側面を理解する必要はありません. 実験するためにより多くの時間を稼ぐための希望が必要です.)