Monday, December 1, 2025

AWS Solutions Architecture for Fan-Out Pattern Delivery to Multiple SQS | Deep Dive.

AWS Solutions Architecture for Fan-Out Pattern Delivery to Multiple SQS - Deep Dive.

 Scope:

  • The concept of Fan-Out Pattern,
  • AWS Services in Fan-Out Pattern,
  • Architecture Diagram,
  • Step-by-Step Implementation,
  • Step 1: Create an SNS Topic,

  • Step 2: Create Multiple SQS Queues,

  • Step 3: Subscribe SQS Queues to SNS Topic,

  • Step 4: (Optional) Lambda Triggers,

  • Key Considerations,
  • Advanced Patterns,
  • Benefits of This Architecture.

1. The concept of Fan-Out Pattern

  • The Fan-Out pattern is used when a single event or single message needs to be processed by multiple independent consumers.
    • Publisher: The component that generates the event (e.g., a Lambda function or an application).
    • Broker: A messaging service (like SNS) that distributes the event to multiple subscribers.
    • Subscribers: The endpoints that consume the event (e.g., multiple SQS queues, Lambda functions, or HTTP endpoints).

Use-case Samples:

    •  Order placed Notify inventory system, shipping system, and analytics system.
    •  User signup Trigger welcome email, log analytics, and create CRM entry.

2. AWS Services in Fan-Out Pattern

SNS (Simple Notification Service)

    • Acts as a pub/sub messaging broker.
    • Supports multiple protocols: SQS, Lambda, HTTP/S, Email, SMS.
    • Can fan out a single message to many subscribers simultaneously.

SQS (Simple Queue Service)

    • Durable queue for decoupling services.
    • Each subscriber can process messages independently and reliably.
    • Supports FIFO queues for ordering or standard queues for high throughput.

Lambda (Optional)

    • Can act as publisher or subscriber.
    • Processes messages from SQS queues asynchronously

3. Architecture Diagram

Explanation:

    1.  Publisher pushes message to SNS topic.
    2.  SNS fans out the message to multiple SQS queues.
    3.  Each SQS queue triggers its own Lambda processor, decoupling workloads.

4. Step-by-Step Implementation

Step 1: Create an SNS Topic

# yaml
aws sns create-topic --name fanout-topic

Step 2: Create Multiple SQS Queues

# yaml
aws sqs create-queue --queue-name queue1
aws sqs create-queue --queue-name queue2
aws sqs create-queue --queue-name queue3

Step 3: Subscribe SQS Queues to SNS Topic

# yaml
aws sns subscribe --topic-arn <SNS_TOPIC_ARN> \ 
--protocol sqs --notification-endpoint <SQS_QUEUE_ARN>

Step 4: (Optional) Lambda Triggers

    •    Each SQS queue can trigger a Lambda function to process messages asynchronously.

Lambda Example (Python):

# python
import json
def lambda_handler(event, context):
    for record in event['Records']:
        body = json.loads(record['body'])
        print("Processing:", body)

5. Key Considerations

Message Delivery

    • SNS delivers messages at least once.
    • SQS ensures durable storage.

Decoupling

    • Each SQS queue processes messages independently, preventing bottlenecks.
    • Failures in one consumer do not affect others.

Dead Letter Queue (DLQ)

    •  For failed messages in SQS or Lambda, configure a DLQ to capture them for later inspection.

Scaling

    •  SNS scales automatically.
    •  SQS queues can scale independently.
    •  Lambda concurrency can be tuned per queue.

Ordering

    • Standard SQS queues: at least once, no ordering guarantee.
    • FIFO SQS queues: exactly once, preserves order.
    • SNS + FIFO SQS = strict ordering support.

6. Advanced Patterns

Message Filtering

    • SNS supports subscription filters.
    • Allows selective delivery to queues based on message attributes:

# json
{
  "eventType": ["order_placed", "order_shipped"]
}
Cross-Account Fan-Out

    •  SNS can fan out messages to SQS queues in different AWS accounts, enabling multi-tenant architectures.

Monitoring

    • Use CloudWatch metrics for:
      •    SNS: NumberOfMessagesPublished
      •    SQS: ApproximateNumberOfMessagesVisible
      •    Lambda: Invocations, Errors, Throttles

7. Benefits of This Architecture

    • Loose coupling: Each service operates independently.
    • Scalable: SNS and SQS scale horizontally.
    • Reliable: Durable queues + DLQs handle failures gracefully.
    • Flexible: Easy to add new subscribers without affecting others.



No comments:

Post a Comment

Amazon EventBridge | Overview.

Amazon EventBridge - Overview. Scope: Intro, Core Concepts, Key Benefits, Link to official documentation, What EventBridge  Really  Is (Deep...