Decuplarea Sistemelor Asincrone cu AWS SQS și SNS: Arhitectura Fanout în AWS Cloud Essentials

Ghid complet pentru mesagerie în AWS: diferența dintre cozile SQS (Standard vs FIFO) și topicurile SNS, implementarea modelului Fanout pentru trimiterea unui eveniment către zeci de consumatori.

Sintaxă
aws sqs receive-message --queue-url <url>; aws sns publish --topic-arn <arn>

Modelul arhitectural Fanout combină serviciul de publicare/abonare Amazon SNS cu cozile de consum Amazon SQS. Când un eveniment critic are loc (de ex: „Comandă Plătită”), evenimentul este publicat o singură dată într-un topic SNS, care îl distribuie instantaneu în mai multe cozi SQS paralele dedicate: una pentru facturare, una pentru livrare și una pentru notificări SMS.

Comenzi AWS CLI pentru publicarea și consumul mesajelor
# 1. Publicarea unui eveniment în topicul SNS:
aws sns publish \
    --topic-arn "arn:aws:sns:eu-central-1:123456789012:comenzi-platite" \
    --message '{"idComanda": "CMD-984", "suma": 450.0}' \
    --subject "Plata Confirmata"

# 2. Preluarea mesajelor de către serviciul consumator din coada SQS dedicată:
aws sqs receive-message \
    --queue-url "https://sqs.eu-central-1.amazonaws.com/123456789012/coada-facturare" \
    --max-number-of-messages 10 \
    --wait-time-seconds 20 # Long Polling pentru economie de costuri și latență scăzută