message-queue

Design message queue architectures with Kafka, RabbitMQ, or SQS including DLQs and idempotent consumers.

1|Updated Mar 21, 2026
One-click install
npx skills add https://github.com/kalilurrahman/kr-claudiator-skills-original-prompts --skill message-queue-kalilurrahman
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: message-queue
Source: https://github.com/kalilurrahman/kr-claudiator-skills-original-prompts/tree/main/06-system-design/message-queue
Command: npx skills add https://github.com/kalilurrahman/kr-claudiator-skills-original-prompts --skill message-queue-kalilurrahman

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires confluent-kafka, pika, boto3, redis.

What problem does it solve? Choosing and configuring a message broker is error-prone: teams struggle with delivery semantics, dead letter handling, ordering guarantees, and consumer scaling when building decoupled asynchronous systems. ## Core Features & Use Cases - Technology Selection: A decision matrix compares Kafka, RabbitMQ, SQS, and Redis Streams across throughput, replay, routing, and exactly-once delivery. - Production-Ready Patterns: Provides producer/consumer implementations with manual offset commits, retry with exponential backoff, dead letter queues, and idempotent consumers using Redis. - Monitoring & Alerting: Includes Prometheus rules for consumer lag and CloudWatch alarms for DLQ depth. - Use Case: You are building an order processing system where payment, notification, and inventory services must react to order events independently. Use this Skill to design the topic topology, configure a FIFO queue with a DLQ, and implement idempotent consumers that safely handle redeliveries. ## Quick Start Design a message queue architecture for an order processing system handling 50k messages per second with at-least-once delivery and a dead letter queue.

Frequently Asked Questions about message-queue

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose between Kafka, RabbitMQ, and SQS?

Choose Kafka for high throughput above 100k messages per second and message replay, RabbitMQ for complex routing with topic exchanges, and SQS for simple serverless queues on AWS. The decision matrix compares them across delivery guarantees, fan-out, and managed hosting options.

How do I implement a dead letter queue in RabbitMQ?

Declare a dead letter exchange and bind a quorum queue to it, then set x-dead-letter-exchange on the main queue. Failed messages are routed to the DLQ after retries are exhausted, and you should alert whenever the DLQ contains messages.

How do I make Kafka consumers idempotent?

Include a unique event_id in every message and store processed IDs in Redis with a TTL. Before handling an event, check if its ID was already processed and skip duplicates, since at-least-once delivery makes redelivery inevitable.

Does SQS support exactly-once message delivery?

SQS FIFO queues support deduplication through content-based deduplication or explicit deduplication IDs, which approximates exactly-once within the deduplication window. Consumers should still be idempotent because duplicates can occur outside that window.

Why is my Kafka consumer falling behind?

Consumer lag grows when processing is slower than production or partitions outnumber consumer instances. Monitor consumer group lag as the primary SLO, increase partitions for parallelism, and avoid slow synchronous calls inside the message handler.

When should I not use Kafka for messaging?

Kafka is overkill for simple single-consumer task queues where RabbitMQ or SQS is a better fit. It also has limited routing flexibility compared to RabbitMQ topic exchanges and requires more operational overhead.