message-queue-design

Design message queue systems with Bull/BullMQ, RabbitMQ, SQS, or Kafka.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill helps you design and implement effective message queue systems, ensuring reliable asynchronous communication and decoupling services.

Core Features & Use Cases

  • Technology Selection: Compares Bull/BullMQ, RabbitMQ, SQS, and Kafka based on throughput, ordering, durability, and complexity.
  • Pattern Implementation: Provides examples for Dead Letter Queues (DLQ), ordering guarantees, and consumer groups.
  • Use Case: You are building a new e-commerce platform and need to process orders asynchronously. This Skill will guide you in choosing between SQS and Kafka, and show you how to implement a DLQ for failed order processing.

Quick Start

Use the message-queue-design skill to help design a message queue for processing user sign-up events.

Frequently Asked Questions about message-queue-design

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

FAQPage Schema
How do I choose between Kafka, RabbitMQ, SQS, and BullMQ for a message queue?

Choosing between Kafka, RabbitMQ, SQS, and BullMQ depends on your throughput, ordering, and durability needs. This Skill compares these message queue technologies to help you select the right broker for your event-driven architecture.

How do I implement a Dead Letter Queue for failed asynchronous message processing?

To implement a Dead Letter Queue (DLQ) for failed asynchronous message processing, you route messages that exceed retry limits to a separate queue. This Skill provides patterns for setting up DLQs to ensure robust error handling in decoupled services.

When do I need message ordering guarantees and consumer groups in event-driven systems?

You need message ordering guarantees and consumer groups in event-driven systems when processing events sequentially or scaling parallel workers. This Skill details how to implement these patterns for reliable asynchronous communication.

Can I use SQS and Kafka together for asynchronous e-commerce order processing?

Yes, you can use SQS and Kafka for asynchronous e-commerce order processing. This Skill helps you design a message queue system that leverages their respective strengths in throughput and durability to decouple your services.

What are the limitations of using BullMQ compared to SQS for high-throughput message queues?

BullMQ limitations compared to SQS include managing your own Redis infrastructure and potential throughput ceilings. This Skill outlines the trade-offs in durability and complexity when selecting a message queue technology for event-driven architectures.