1回あたり2%の確率で配り損ねるとき、受け手60個すべてに届く日は30.4%でした。
やり直しを1回入れると97.7%になります。受け手が多いほど、やり直しの設定が効きます。
出来事を出す側は、誰が受け取るかを知りません。だから受け手を後から足せます。
EventBridgeが前提にする作りを、公式はこう定めています。出来事に駆動される構造とは、出来事を発し、それに応えることで協調する、緩やかに結びついたソフトウェアの系を組み立てるやり方であるという記述です。
「緩やかに結びついた」が要点です。送る側は、受け取る側を知りません。
配る役の説明も明示されています。出来事の道筋は、出来事を受け取り、それを0個以上の宛先へ配る振り分け役であるという記述です。
宛先が0個でも成り立ちます。送る側は、届いたかどうかを気にしません。
この性質が利点であり、落とし穴でもあります。宛先の設定を消しても、送る側は変わらず動きます。
送る側を変えずに、宛先だけを足せます。試している処理を1つ足しても、既存の処理に影響しません。
その代わり、受け手が増えるほど全部に届く確率が問題になります。次の節で数えます。
Event-driven architecture is a style of building loosely-coupled software systems that work together by emitting and responding to events.原文AWS ドキュメント「What Is Amazon EventBridge?」 この内容の有効期限2027-02-18
1回あたりの失敗が小さくても、宛先が多ければ全部届く確率は下がります。
EventBridgeは、受け取った出来事を配ります。公式は出来事の道筋は、出来事を受け取り、それを0個以上の宛先へ配る振り分け役であると定めています。
宛先が多いとき、全部に届く確率がどうなるかを数えました。
配る先を60個とし、1回あたり2%の確率で配り損ねるとしました。
処理 60個。1回あたり 2%の確率で一時的に失敗する やり直す前に 5分待つ。全部成功しなければ、その日の結果は出ない やり直しの回数 最後まで通った割合 やり直した回数(平均) 遅れ(平均) 0回 30.4% 0.00回 0.0分 1回 97.7% 1.19回 23.9分 2回 99.9% 1.23回 24.4分 3回 100.0% 1.24回 24.1分
やり直しなしでは30.4%です。7割の日は、どこかの宛先に届きません。
1回入れると97.7%になります。増えた手間は平均1.19回のやり直しでした。
2回にすると99.9%、3回で100.0%です。伸びしろは2.2ポイントしかありません。
同じ宛先が2回続けて失敗するのは0.04%です。2回落ちたら一時的な失敗ではないと考えて、別の入れ物へ回すほうが早い場面もあります。
配れなかった出来事の置き場所を用意しておけば、あとから配り直せます。同じ形のやり直しはAWS Step Functionsの記事でも数えました。
1回のやり直しで、届かない日が7割から2%台になる。
Event buses are routers that receive events and delivers them to zero or more targets.原文AWS ドキュメント「What Is Amazon EventBridge?」 この内容の有効期限2027-02-18
経路の一部でも見に行く形が残っていると、その分の遅れが全体に乗ります。
EventBridgeは、取り込みから配りまでを担います。公式は取り込み、絞り込み、変換、配布のための、単純で一貫したやり方を提供すると述べています。
配る形にしても、途中に見に行く形が残っていればその遅れが乗ります。どれだけかを数えました。
上流のファイルが届くのを待つ。届く時刻は 180分の幅でばらつく 決めた間隔で見に行く。届いていれば次へ進む 見に行く間隔 気づくまでの遅れ(平均) 99%点 見に行った回数(平均) 1分ごと 0.5分 1.0分 81.1回 5分ごと 2.5分 5.0分 16.6回 15分ごと 7.4分 14.8分 5.9回 30分ごと 15.2分 29.7分 3.2回 60分ごと 31.5分 59.4分 1.9回
15分ごとに見に行く形なら、平均7.4分の遅れです。99%点では14.8分になります。
配る形にすれば、この遅れは0分に近づきます。出来事が起きた時点で届くためです。
経路の一部だけを配る形にしても、残りの見に行く形の遅れは消えません。
全体の遅れは、経路上でいちばん長い間隔でほぼ決まります。1分ごとの箇所と60分ごとの箇所が混ざっていれば、後者が効きます。
だから確かめるのは、経路の中に見に行く形が残っていないかです。1箇所でも残っていれば、そこが下限になります。
配り損ねは宛先ごとに独立として置きました。実際には、配る側の障害で全部の宛先が同時に落ちることがあり、その場合はやり直しの効き方が変わります。2%という失敗率も置いた値です。見に行く形の計測も、出来事の起きる時刻を180分の幅で一様としたもので、実際には特定の時刻に集中します。ここで見せているのは、宛先が多いほど全部届く確率が下がること、経路にひとつでも見に行く形が残ればそこが遅れの下限になることの2つです。
EventBridge provides simple and consistent ways to ingest, filter, transform, and deliver events so you can build applications quickly.原文AWS ドキュメント「What Is Amazon EventBridge?」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る