3

Xサーバーの動的ネットワーク(時間の経過とともに修正されない)があり、追加のみのデータベースにすべてのイベントの同一のコピーがあるとしましょう。今、私はこれら 10 台のサーバーのいずれかで新しいイベントの作成をサポートし、コンセンサスに達し、イベントを複製し、すべてがまったく同じイベント順序になるようにしたいと考えています。これは一般的な問題であり、このようなことを処理することになっているアルゴリズムがあることを理解しています. しかし、私はそれらを完全には把握しておらず、特にイベント ソーシングに関するコンセンサスに関していくつか質問があります。

サーバーは、コンセンサスに達したと思う値が実際に「正しい」値になることを完全に確信することはできないと思いますか? これは、新しいサーバーがいつでもネットワークに参加できるという事実に基づいており、バランスを崩して別の値を優先することができます。これは、かなり後で発生する可能性もあります。しかし、この場合、サーバーは新しい「正しい」値をどのように処理する必要がありますか? イベントソーシングでは、修正を行うために補正イベントを追加するのが普通ですが、これらの補正イベントをすべてのサーバーにも複製する必要はありませんか? すべてのサーバーにまったく同じイベントがあることを確認するということです。

補償イベントを追加するのではなく、既にコミットされたイベントを「ポッピング」するだけの場合、これらを複製する必要はないと思いますが、代わりに他の問題に遭遇します。(誤って) コミットされたイベントがイベント バスで送信され、他のサービスがそれらに反応できるようになった場合、混乱させずにイベント データベースからイベントをポップすることはできません。

それとも、短期間でコンセンサスに達した時点で、その値にコミットするほうがよいのでしょうか? そして、すべての新規/遅延サーバーを冷たい手で扱いますか? とにかく彼らに結果を受け入れさせますか?新しいサーバーが、最初のサーバーよりも大きい独自のネットワークに接続されていて、それらすべてが別の値について合意に達した場合はどうなるでしょうか?

4

1 に答える 1