Skip to main content

01. Cloud Integration Introduction

When deploying multiple applications, they often need to communicate with each other. AWS provides several integration services that enable this communication in a scalable, decoupled, and reliable way.


🔄 Communication Patterns

TypeDescriptionExampleProblem
Synchronous (App → App)Direct, real-time communication between services (e.g., HTTP/REST API calls).A web app calls a microservice API directly.Fails or slows down during traffic spikes.
Asynchronous (Event-based)Indirect communication through an intermediary (queue, topic, or stream).One app sends messages/events to another via a broker.More resilient and scalable.

⚙️ Why Decouple Applications?

When traffic spikes (e.g., encoding 1000 videos instead of 10), synchronous calls can overwhelm the backend.
By decoupling applications, each component can scale independently, improving reliability and performance.


🧩 AWS Integration Services

ServiceModelDescription
SQS (Simple Queue Service)Queue ModelEnables asynchronous message queuing between producers and consumers. Ideal for decoupling workloads.
SNS (Simple Notification Service)Pub/Sub ModelSends notifications to multiple subscribers (e.g., email, Lambda, SQS). Ideal for fan-out messaging.
KinesisStreaming ModelHandles real-time data streams for analytics and processing. (Out of scope for the exam)

SQS vs SNS

Both Amazon SQS and Amazon SNS enable asynchronous communication between applications, but they serve different purposes depending on the communication pattern.

⚖️ Comparison Table

FeatureSQS (Queue)SNS (Topic)
ModelPoint-to-PointPublish/Subscribe
Message DeliveryMessage goes to one consumerMessage is sent to many subscribers
PersistenceMessages are stored until processedMessages are pushed immediately (not stored long)
Use CaseDecouple producer and consumerBroadcast events to multiple receivers
ExampleOrder Processing QueueSend “OrderPlaced” event to Email, SMS, and Billing services

🧠 Key Takeaway

Decouple your applications using SQS or SNS for better scalability, fault tolerance, and asynchronous processing.