Link copied to clipboard!
Group 12: Application Integration
Messaging and workflow orchestration services: SQS, SNS, EventBridge, Step Functions, AppSync.
Integration Principle: Choose messaging patterns (queue, pub/sub, event-driven) and orchestration approaches (workflow, GraphQL) based on coupling, reliability, and scalability requirements.
Services & Roles
SQS
Fully managed message queuing for decoupling and scaling microservices.
- Standard & FIFO queues
- Dead letter queues
- Message deduplication
SNS
Pub/sub messaging for fanout scenarios and mobile push notifications.
- Topic subscriptions
- Mobile push
- Email/SMS delivery
EventBridge
Serverless event bus for application integration with schema registry.
- Event patterns
- Schema registry
- Cross-account events
Step Functions
Visual workflow orchestration for distributed applications and microservices.
- State machines
- Error handling
- Parallel execution
AppSync
Managed GraphQL service with real-time subscriptions and offline support.
- GraphQL API
- Real-time subscriptions
- Offline sync
Key Differences
| Dimension | SQS | SNS | EventBridge | Step Functions | AppSync |
|---|---|---|---|---|---|
| Pattern | Point-to-point | Pub/sub | Event-driven | Workflow orchestration | GraphQL API |
| Coupling | Loose | Loose | Loose | Orchestrated | Client-server |
| Use Case | Task queues | Fan-out messaging | Event routing | Business processes | Data aggregation |
| Delivery | Pull-based | Push-based | Event-driven | State-driven | Query-based |
| Ordering | FIFO available | No guarantees | No ordering | Sequential/parallel | Real-time |
Selection Model
0–10 sliders weight integration patterns, messaging requirements, and orchestration complexity.
Score_SQS = 0.30*C_taskQueues + 0.26*C_pointToPoint + 0.18*C_messageOrdering + 0.12*C_reliableDelivery + 0.08*C_deadLetterQueues + 0.06*(10 - C_fanOutPattern)
Score_SNS = 0.32*C_fanOutPattern + 0.28*C_pubSubMessaging + 0.18*C_mobilePush + 0.12*C_multipleSubscribers + 0.06*C_emailSMS + 0.04*(10 - C_messageOrdering)
Score_EventBridge = 0.30*C_eventDrivenArch + 0.26*C_eventRouting + 0.18*C_schemaRegistry + 0.12*C_crossAccountEvents + 0.08*C_eventPatterns + 0.06*C_serverlessIntegration
Score_StepFunctions= 0.32*C_workflowOrchestration + 0.24*C_businessProcesses + 0.18*C_stateMachines + 0.12*C_errorHandling + 0.08*C_parallelExecution + 0.06*C_visualWorkflows
Score_AppSync = 0.34*C_graphqlAPI + 0.26*C_dataAggregation + 0.18*C_realTimeSubscriptions + 0.12*C_offlineSync + 0.06*C_mobileApps + 0.04*C_queryOptimization
SQS {{vm.scores.sqs|number:2}}
SNS {{vm.scores.sns|number:2}}
EventBridge {{vm.scores.eventbridge|number:2}}
Step Functions {{vm.scores.stepfunctions|number:2}}
AppSync {{vm.scores.appsync|number:2}}
Primary Emphasis: {{vm.recommended.name}} ({{vm.recommended.score|number:2}})
Heuristics
- High C_taskQueues + C_pointToPoint → SQS for work distribution.
- Strong C_fanOutPattern + C_pubSubMessaging → SNS for broadcasting.
- High C_eventDrivenArch + C_eventRouting → EventBridge for event integration.
- C_workflowOrchestration + C_businessProcesses → Step Functions for coordination.
- C_graphqlAPI + C_dataAggregation → AppSync for modern APIs.
Anti-Patterns
- Using SNS for point-to-point messaging (use SQS instead).
- Using SQS for fan-out patterns (SNS is more appropriate).
- Using Step Functions for simple task queues (SQS is sufficient).
- Using EventBridge for high-throughput scenarios (consider SQS/SNS).
Summary
Choose SQS for queues, SNS for pub/sub, EventBridge for events, Step Functions for workflows, AppSync for GraphQL.