Pattern 1 — ECS Task Invoked by EventBridge (Event-Driven)

Trigger: Something happens in AWS (e.g. a file is uploaded to S3).

image.png

Client uploads file to S3
    |
S3 sends event to EventBridge
    |
EventBridge rule: "on S3 upload --> run ECS Task"
    |
ECS spins up a new Fargate task
    |
Task reads file from S3 --> processes it --> saves result to DynamoDB
    |
Task finishes and stops automatically

Key points:


Pattern 2 — ECS Task Invoked by EventBridge Schedule (Cron Jobs)

Trigger: A fixed time interval — no human action needed.

image.png

EventBridge Schedule: every 1 hour
    |
Rule: Run ECS Task
    |
ECS spins up a new Fargate task
    |
Task does batch processing --> saves results to S3
    |
Task finishes and stops automatically

Key points:

EventBridge Event EventBridge Schedule
Trigger Something happens (S3 upload, state change) Fixed time (every 1 hour, every day at 9 AM)
Use case React to events Scheduled batch jobs

Pattern 3 — ECS + SQS Queue (Scale on Queue Depth)

Trigger: Number of messages waiting in an SQS queue.

image.png

Messages arrive in SQS Queue
    |
ECS tasks poll the queue for messages
    |
Queue backlog builds up
    |
CloudWatch monitors SQS queue depth metric
    |
ECS Auto Scaling adds more tasks
    |
More tasks = more consumers = queue drains faster
    |
Queue empties --> Auto Scaling removes extra tasks

Key points: