Skip to content
Back to skills

Message Queue Patterns

ASecurity

Use when implementing message queues and stream processing.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 10, 2026
ai-agentspython

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill message-queue-patterns --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Message Queue Patterns?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Message Queue Patterns
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-message-queue-patterns/badge)](https://www.skillsdirectory.com/skills/loopyluci-message-queue-patterns)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: message-queue-patterns
description: "Use when implementing message queues and stream processing."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [message-queue, kafka, rabbitmq, pub-sub, streaming, event-bus]
    related_skills: [event-driven-architecture, data-pipeline-streaming, microservices-decomposition, distributed-systems-patterns]
---

# Message Queue Patterns

Implementing message queue and stream processing systems — from pub-sub and point-to-point through Kafka/RabbitMQ patterns, consumer groups, and exactly-once semantics.

## When to Use

- Decoupling microservices via async messaging
- Building event-driven data pipelines
- Buffering spikes in request volume
- Implementing pub-sub for broadcast events
- Processing streams in real-time

## Queue Types

```python
QUEUE_TYPES = {
    'point_to_point': 'One producer, one consumer (competing consumers)',
    'pub_sub': 'One producer, multiple subscribers each get all messages',
    'request_reply': 'Producer sends, consumer replies (RPC over queue)',
    'dead_letter': 'Failed messages are stored for later inspection',
}

class MessageBroker:
    """Simple in-memory message broker."""
    def __init__(self):
        self.queues = {}
        self.topics = {}
    
    def create_queue(self, name: str):
        self.queues[name] = []
    
    def publish_to_queue(self, queue: str, message: dict):
        if queue in self.queues:
            self.queues[queue].append(message)
    
    def consume_from_queue(self, queue: str) -> dict:
        if queue in self.queues and self.queues[queue]:
            return self.queues[queue].pop(0)
        return None
```

## Common Pitfalls

1. **No message ordering guarantees** — Kafka partitions order within, not across; design for it
2. **Exactly-once is hard** — at-least-once with idempotent consumers is more practical
3. **No dead letter queue** — failed messages block the queue; have a DLQ
4. **Monitoring blind spot** — queue depth growing silently indicates a problem
5. **Schema evolution** — messages change shape over time; use Avro/Protobuf with schema registry

## Verification Checklist

- [ ] Queue topology matches use case (point-to-point vs pub-sub)
- [ ] Consumer idempotency implemented (replay safety)
- [ ] Dead letter queue configured per queue/topic
- [ ] Message schema versioned (schema registry)
- [ ] Monitoring on queue depth, consumer lag, throughput
- [ ] Exactly-once vs at-least-once semantics documented

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.