LoginSignup
7
5

At most once、at least once、exactly once

Last updated at Posted at 2023-05-30

At most once

  • メッセージは 1 回以上配信されない。
  • メッセージが失われることはあっても、再配信されることはない。高いレベルで配信速度が速い。
  • 使用例: メトリクスの監視など、少々のデータ損失は許容できるようなケース。

At least once

  • メッセージを複数回配信することを許容し、メッセージを失わない。
  • 使用例: 同じメッセージが複数回配信される可能性があるため、ユーザーの観点からは理想的ではないが、データの重複が大きな問題でない、あるいはコンシューマー側で重複排除が可能なユースケースで、十分な効果を発揮する。例えば、各メッセージに一意キーがあれば、重複するデータをデータベースに書き込む際に、メッセージを拒否することができる。

Exactly once

  • 最も実装が難しい。ユーザーには優しいが、システムの性能と複雑さにコストがかかる。
  • 使用例: 金融関連のユースケース(決済、取引、会計など)。重複が許されず、下流のサービスやサードパーティがidempotencyをサポートしていない場合。

参考

image.png

図引用: At most once, at least once, exactly once - by Alex Xu
エンタープライズのためのAkka 〜 Akkaで信頼できるメッセージを送る - Qiita
Akka Actorのメッセージデリバリーの信頼性について - Qiita

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5