SQSのトラブルシュート

 

SQSのトラブルシュート

トラブルケース1

B商社ではSQSキューを使用して発注処理を行うシステムを運用しています。 最近になって担当者による注文処理を2回実施してしまうトラブルが発生しているクレームが入りました

 

対応

  1. SQS の代わりにStep functionを利用する

 

解説

今回の問題は発注管理システムが重複した注文処理をしてしまうことです。これは人的ミスで注文を二回してしまうことが原因です。

つまり、SQSとしては二回メッセージが別個の処理扱いで発生しているため、SQS上では重複にはなっていません。この問題の発生を防ぐには、SQSではなくStep functionサービスを使用する必要があります。

Step Functionにより発注フローを作成して、二重の発注が発生しないようにプロセスを形成します。Step functionは、開発者が並行または順次のステップを持つバックグラウンドジョブを構築、実行、およびスケーリングするのに役立ちます。

SQSでもメッセージ重複排除IDや可視性タイムアウトなどのメッセージ重複処理を防ぐ方法がありますが、これらはシステム的にサーバー間でのキューイング処理を重複して処理してしまうのを防ぐ仕組みです。

今回の要件で求められているのは、業務的に2回注文が行われてしまう場合の重複防止となります。これはワークフローとして処理プロセスを整備する必要があり、SQSでは対応できません。

 

 

 

おすすめの記事