backend-async-messaging · git:20260921.de5eb9f · 2026-09-21 · sha256 2e5ebcd0d28dc8cd
backend-async-messaging git:20260921.de5eb9fA
Immutable. This exact content is served forever at /api/v1/blob/2e5ebcd0d28dc8cd.
--- name: backend-async-messaging description: Async execution, RabbitMQ producers and consumers, schedulers, and background processing rules. Load when async, queues, or scheduled jobs change. --- # Backend Async / Messaging — Canonical > Canonical async skill. Detailed rules: `skills/backend/ASYNC_MESSAGING.md`. > Requires: `AGENTS.md`, `.agents/skills/backend-core/SKILL.md`. ## When to load `@Async`, RabbitMQ, schedulers, queue consumers/producers, or background processing. ## Rules (summary — binding details in `skills/backend/ASYNC_MESSAGING.md`) - Current checkout has no active `@RabbitListener`; YAML retry/concurrency settings alone create no consumer. - Adding a consumer requires explicit idempotency + duplicate-delivery behavior and wired retry/DLQ (not YAML-only). - Do not assume exactly-once delivery. - Pass actor identity explicitly into async work; do not rely on thread-local security/audit propagation. - Do not hold DB transactions open across remote calls, filesystem work, model inference, or message publication without deliberate design. - Consumer changes require duplicate-delivery + retry/DLQ tests.