Skip to content

Messaging

Open in ChatGPTOpen in Claude

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.

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.

© 2026 Axis Tech. Powered by axis-tech.co.