message-queues

Standardize asynchronous messaging with idempotent consumers and dead-letter queues.

Updated Feb 20, 2026
One-click install
npx skills add https://github.com/jota-batuta/batuta-dots --skill message-queues-jota-batuta
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: message-queues
Source: https://github.com/jota-batuta/batuta-dots/tree/main/BatutaClaude/skills/message-queues
Command: npx skills add https://github.com/jota-batuta/batuta-dots --skill message-queues-jota-batuta

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Standardizes asynchronous messaging patterns to prevent lost messages, duplicates, and dead letters across Batuta projects.

Core Features & Use Cases

  • Idempotent consumers: deduplicate processing even if messages are delivered multiple times.
  • Dead letter queues (DLQ): collect and surface failures for investigation and recovery.
  • Exponential backoff with jitter: resilient retries that avoid thundering herd.
  • Outbox pattern: atomic writes to DB and published events to ensure consistency.
  • Tenant-aware envelopes: isolate and route messages by tenant_id.

Quick Start

Publish a test message to your queue and verify it is delivered exactly once with an explicit dedup check.

Frequently Asked Questions about message-queues

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

FAQPage Schema
How do I implement idempotent consumers for asynchronous messaging?

Idempotent consumers deduplicate asynchronous messaging processing even if messages are delivered multiple times. You implement them by standardizing queue-based patterns with explicit dedup checks to ensure each message is processed exactly once.

What is the transactional outbox pattern for message queues?

The transactional outbox pattern ensures reliable asynchronous messaging by performing atomic writes to both the database and published events. This transactional outbox usage guarantees consistency and prevents lost messages across projects.

How do I handle dead letter queues and retries with exponential backoff?

Dead letter queues collect and surface asynchronous messaging failures for investigation and recovery. You handle retries by implementing exponential backoff with jitter, creating resilient systems that avoid thundering herd effects.

Does this message queue pattern support tenant-aware routing with RabbitMQ, Redis Streams, or Kafka?

Yes, tenant-aware envelopes isolate and route messages by tenant_id. The pattern guides technology choices across RabbitMQ, Redis Streams, and Kafka to implement safe acknowledgement semantics for multi-tenant contexts.

What's the best way to prevent duplicate messages in asynchronous messaging?

The best way to prevent duplicate asynchronous messages is standardizing queue-based patterns with idempotent consumers and dead letter queues. This approach ensures safe acknowledgement semantics and surfaces failures for recovery.