← ClaudeAtlas

messaging-queueslisted

Design production async messaging — queues, brokers, pub/sub, event streams, and the delivery-guarantee math behind them. Use when introducing a message broker (RabbitMQ / Kafka / SQS / NATS / Redis Streams), choosing queue vs log vs pub/sub, designing idempotent consumers, sizing retries and dead-letter queues, ordering partitions, handling poison messages, or debugging duplicate/lost/out-of-order delivery. Boundary vs api-design — api-design owns the synchronous request/response HTTP contract (REST/GraphQL, idempotency keys, RFC 9457 errors) where the caller waits for a reply; this skill owns the asynchronous fire-and-forget seam after a request returns, where producer and consumer are decoupled in time. Defers the persistent bidirectional socket transport to realtime-websockets and binary east-west RPC to grpc-microservices.
kouroshez/coding-os · ★ 6 · API & Backend · score 77
Install: claude install-skill kouroshez/coding-os
# Messaging & Queues — Async Delivery That Survives Failure A practical guide to moving work off the request path and across service boundaries without losing, duplicating, or reordering it into corruption. Stack-agnostic; concrete recipes target RabbitMQ, Kafka, AWS SQS/SNS, NATS, and Redis Streams as the reference brokers. ## When to Use This Skill - Introducing the first broker into a system that has only synchronous HTTP calls. - Choosing between a work queue, an event log, and pub/sub fan-out for a new flow. - Designing a consumer that must be safe to retry — idempotency, dedup, exactly-once illusions. - Sizing retry/backoff, dead-letter queues, and poison-message handling before launch. - Debugging duplicate processing, lost messages, or out-of-order delivery in production. - Deciding partition keys / ordering guarantees for an event stream. Skip when: the caller needs the result synchronously in the same request — that is an HTTP/RPC contract (see api-design / grpc-microservices), not a queue. ## The First Decision — Queue vs Log vs Pub/Sub These three are not interchangeable. Pick by who consumes and whether history matters. | Shape | Semantics | Each message goes to | Use when | Reference broker | |---|---|---|---|---| | **Work queue** | competing consumers, message removed on ack | exactly one worker in the pool | distribute jobs, scale horizontally | RabbitMQ, SQS | | **Event log** | append-only, retained, replayable by offset | every consumer group, indepen