Amazon MQ
Managed Apache ActiveMQ or RabbitMQ message broker with standard wire protocols and optional multi-AZ deployment.
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| backoff | enum | none | fixed | exponential | exponential-jitter | no | — | inherited |
| deadLetterQueue | boolean | — | no | false | inherited |
| delivery | enum | at-most-once | at-least-once | exactly-once | yes | — | ▸ at-least-once |
| deploymentMode | enum | single-instance | active-standby-multi-az | cluster-multi-az | no | — | inherited |
| encryptionAtRest | boolean | — | no | true | inherited |
| engine | enum | activemq | rabbitmq | no | activemq | inherited |
| instances | integer | — | no | — | inherited |
| managed | boolean | — | no | false | ▸ true |
| maxAttempts | integer | — | no | — | inherited |
| ordering | enum | none | per-key | global | no | none | inherited |
| persistence | boolean | — | no | true | ▸ true |
| replay | boolean | — | no | false | ▸ false |
| retentionDays | integer | — | no | — | inherited |
| role | enum | work | dlq | retry | offline-mailbox | frontier | no | work | ▸ work |
| storageType | enum | efs | ebs | no | — | inherited |
| tlsRequired | boolean | — | no | true | inherited |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
A queue that receives asynchronous traffic and has no dead-letter queue either drops poison messages or retries them forever. Neither outcome leaves anything for a human to investigate.
- — all of these hold:
- — the node's `deadLetterQueue` is false
- — the node has at least one asynchronous incoming edge
A retry queue is where poison messages end up. With no dead-letter queue they are retried forever or dropped in silence, and nobody ever looks at the failed payment.
- — all of these hold:
- — the node's `role` is "retry"
- — the node's `deadLetterQueue` is false
Retrying a transient failure at full speed turns one slow dependency into a retry storm. A retry queue backs off, preferably exponentially and with jitter.
- — all of these hold:
- — the node's `role` is "retry"
- — any of these hold:
- — the node's `backoff` has no value
- — the node's `backoff` is "none"
nodes:
- { id: "mq", component: "aws-mq" }# yaml-language-server: $schema=../../schema/component.schema.json # Amazon MQ: managed Apache ActiveMQ Classic or RabbitMQ broker; AWS runs maintenance and version # upgrades in a scheduled window. "Data protection in Amazon MQ" says data is always encrypted at # rest (Amazon MQ owned KMS key by default) and TLS is required for all client connections; # "Deployment options" shows a broker is one instance in one AZ unless you pick active/standby. schemaVersion: "1" type: "component" id: "aws-mq" kind: "queue" provider: "aws" docs: "https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html" defaults: managed: true delivery: "at-least-once" persistence: true replay: false role: "work" properties: engine: type: "enum" values: ["activemq", "rabbitmq"] default: "activemq" deploymentMode: type: "enum" values: ["single-instance", "active-standby-multi-az", "cluster-multi-az"] storageType: type: "enum" values: ["efs", "ebs"] encryptionAtRest: type: "boolean" default: true tlsRequired: type: "boolean" default: true