Amazon SESを使用した2つのアーキテクチャを確認しましょう。
ユーザーケース1
ビジネス要件により、クレジットカード取引が完了した際に通知メールを送信する必要があります。支払いの処理とメール送信を同期させると、大量の取引が同時に発生した場合にシステムのボトルネックが発生しやすくなります。
この問題の解決策は、支払い処理とメール送信の同期を使用しない以下のアーキテクチャを採用することです。このアーキテクチャは、小〜中規模の環境に適しています。
利点:サーバーレスアーキテクチャを使用するため、実際の取引が発生した場合にのみコストが発生します。このアーキテクチャの実行は簡単です。
デメリット:Lambdaのスロットリングの問題を回避するために、SQSがLambda関数を制限された数しか呼び出さないように設定することができます。これにより、メール送信プロセスが遅くなり、ユーザーエクスペリエンスに影響が及ぶ可能性があります。
ユーザーケース2
ビジネス要件により、特定の時点で大規模なキャンペーンを実施する必要があり、予定された時間に大量の顧客にメールを送信する必要があります。大規模で正確なスケジュール要件のため、ユーザーケース1のアーキテクチャは使用できません。