Overview
TheMessagingFactory creates event-driven AWS resources: SQS queues, SNS topics, and EventBridge event buses. These resources decouple application components for asynchronous communication.
Basic Usage
Messaging Types
SQS Queue (Standard)
Standard queues for high-throughput messaging:- Nearly unlimited throughput
- At-least-once delivery
- Best-effort ordering
- Perfect for background job processing
SQS Queue (FIFO)
FIFO queues for ordered, exactly-once processing:- Exactly-once processing
- First-in-first-out ordering
- Message deduplication
- Perfect for ordered workflows
Dead Letter Queue
Capture failed messages for analysis:SNS Topic
Publish-subscribe messaging for fan-out patterns:- Fan-out to multiple subscribers
- Push-based delivery
- Multiple subscriber types (SQS, Lambda, HTTP, email)
- Message filtering
EventBridge Event Bus
Custom event bus for event-driven architectures:- Schema registry support
- Event archiving
- Cross-account event delivery
- Rule-based routing
Configuration Parameters
Queue Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
type | "queue" | Resource type | Required |
queueType | "standard" | "fifo" | Queue type | "standard" |
visibilityTimeout | number | Seconds message is hidden after receive | 30 |
messageRetentionPeriod | number | Seconds to retain messages | 345600 (4 days) |
maxMessageSize | number | Maximum message size in bytes | 262144 (256 KB) |
receiveMessageWaitTime | number | Long polling wait time | 0 |
deadLetterQueue | object | Dead letter queue configuration | - |
contentBasedDeduplication | boolean | Enable content-based dedup (FIFO only) | false |
deliveryDelay | number | Delay in seconds before messages become visible | 0 |
encryption | "SSE_KMS" | "SSE_SQS" | "NONE" | Encryption type | "SSE_SQS" |
kmsKeyArn | string | KMS key ARN for encryption (if KMS encryption) | - |
removalPolicy | "DESTROY" | "RETAIN" | What happens on stack delete | "RETAIN" |
Topic Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
type | "topic" | Resource type | Required |
displayName | string | Display name for SMS | - |
fifo | boolean | Enable FIFO topic | false |
contentBasedDeduplication | boolean | Enable dedup (FIFO only) | false |
topicName | string | Custom topic name | Auto-generated |
removalPolicy | "DESTROY" | "RETAIN" | What happens on stack delete | "RETAIN" |
Event Bus Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
type | "eventBus" | Resource type | Required |
eventBusName | string | Custom event bus name | Auto-generated |
removalPolicy | "DESTROY" | "RETAIN" | What happens on stack delete | "RETAIN" |
Common Patterns
Background Job Processing
Event Fan-Out
Route matching events to multiple targets with an EventBridge event bus. Callsubscribe(id, { pattern, target }) on the bus, passing a queue, Lambda, or ECS service as the target. Each subscription creates an EventBridge rule scoped to the bus.
MessagingFactory topics. Use an EventBridge event bus for declarative fan-out, or attach SNS subscriptions directly to the underlying CDK construct via topic.getTopic().
ISR Revalidation Queue (OpenNext)
Connecting to Compute
Lambda with SQS Trigger
ECS with Queue Access
Access Grants
Queue Permissions
Topic Permissions
Best Practices
- Use FIFO queues when order matters
- Always configure DLQs for production queues
- Set appropriate timeouts based on processing time
- Use topics for event broadcasting
- Use EventBridge for complex routing rules
- Monitor queue depth for scaling decisions
Next Steps
Compute Factory
Process messages with Lambda or ECS
Payload Pattern
See messaging in action with OpenNext