Skip to content

About

RedisSMQ: Language‑agnostic concepts, architecture, and operational patterns.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RedisSMQ

The definitive guide to RedisSMQ
language‑agnostic concepts, architecture, and operational patterns.


🌐 Language Implementations

Language Repository Status
TypeScript / Node.js redis-smq Reference implementation
Go go-redis-smq Fully compatible

All implementations share the same wire protocol and data schema.


✨ Key Features

Feature Description
📬 Reliable delivery At‑least‑once delivery with retries, dead‑letter queues, and automatic crash recovery.
🚀 High throughput Atomic Lua scripts and efficient Redis data structures.
📊 Multiple queue types FIFO, LIFO, and Priority.
🔀 Flexible routing Direct, Topic, Fanout exchanges plus direct queue publishing.
👥 Delivery models Point‑to‑Point and Pub/Sub with consumer groups.
⏰ Scheduling Delayed delivery, CRON schedules, and repeating messages.
🚦 Rate limiting Per‑queue throughput control.
⏱️ TTL & timeouts Message expiry and consumption timeouts.
📦 Batch acknowledgements Reduced Redis calls for high‑throughput consumers.
🔒 Queue state management Pause, stop, resume, and lock queues with audit.
📡 Event bus Real‑time system events via Redis Pub/Sub.
🌐 Cross‑language Go and TypeScript implementations share one protocol.
🔧 REST API & Web UI Provided by the TypeScript implementation; compatible with all clients.

🎯 Use Cases

  • Background job processing (emails, reports, data pipelines)
  • Task scheduling with automatic retries
  • Microservices communication
  • Real‑time event handling (gaming, IoT, analytics)

📋 Requirements

  • Redis ≥ 4.0

📂 Documentation Structure

The documentation is versioned to stay in sync with the evolving specification.
A specification version (e.g., v1.0) groups a compatible set of language‑specific releases.

ℹ️ The specification version is independent of any library’s semantic version.
Each versioned folder is an immutable snapshot of the concepts at that point in time.

Folder Layout

Folder Content Stability
/next/ Bleeding‑edge spec (development branches) ⚠️ Volatile
/v1.0/ (TBD) Latest stable specification ✅ Immutable

Compatibility Matrix

Docs Folder redis-smq (TypeScript) go-redis-smq (Go) Status
/next/ next branch / @next next branch 🚧 Unreleased
/v1.0/ (TBD) ≥11.0.0 <11.1.0 ≥1.0.0 <1.1.0 ✅ Latest Stable

⚠️ Always check this table before reading the docs to ensure you’re viewing the version that matches your runtime.


🚀 Getting Started

  • If you are using a development branch, begin with the /next/ specification and its Getting Started guide.
  • For stable releases, wait for the versioned folder (e.g., /v1.0/) to be published.

For the full document index of the current development specification, see next/README.md.


🤝 Contributing

Documentation improvements are welcome. See CONTRIBUTING.md for guidelines.

📄 License

MIT – see LICENSE.

About

RedisSMQ: Language‑agnostic concepts, architecture, and operational patterns.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors