Messaging
Axis treats messaging as data-layer infrastructure: queues, topics, and event buses are declared as config arrays on the DataStack. The defaults are opinionated toward observability and safety.
Queues get a dead-letter queue by default (RedrivePolicy with maxReceiveCount: 3) — an undelivered message goes somewhere you can inspect it, at essentially zero cost. Attach a consumer Lambda with the construct’s attachConsumer(baseName, fn, batchSize?) helper. DataStack writes sqs/{baseName}/queueUrl, queueArn, and dlqArn to SSM.
Topics are published to by handlers via the construct’s grant surface. DataStack writes sns/{baseName}/topicArn.
Declare custom buses and rules. DataStack writes per-bus eventbridge/{baseName}/busArn and per-rule eventbridge/{ruleName}/ruleArn.
Known limitation: rule → Lambda targets
Section titled “Known limitation: rule → Lambda targets”DataStack.eventBridge config declares buses and rules but has no static-config path to attach a Lambda target to a rule — addLambdaTarget() is a construct method that needs a function handle. Rules synthesise cleanly without a target; wire a target in raw CDK where you need one. Tracked framework gap.
Where to go next
Section titled “Where to go next”- Workers & Cron for standalone and scheduled consumers.
- Observability & Alerting — a DLQ-depth alarm is a common first alert.
© 2026 Axis Tech. Powered by axis-tech.co.