SlackMQ¶
Message queue system using Slack as its transport layer.
SlackMQ implements publish/subscribe semantics with fan-out, at-least-once delivery, consumer acknowledgement, and dead-letter routing — all backed by Slack channels, messages, and emoji reactions.
Components¶
| Component | Description |
|---|---|
| smqbroker | Go service that orchestrates fan-out, tracks acknowledgements, and handles dead-letter routing |
| smq-go | Go client SDK for publishing and consuming |
| smq-py | Python client SDK for publishing and consuming |
How It Works¶
- Topics are Slack channels the broker watches for new messages
- Queues are Slack channels that receive copies of topic messages
- Subscriptions link topics to queues — messages fan out automatically
- Consumers claim messages with emoji reactions, then ACK or NACK
- Failed messages route to a dead-letter queue (optional)
Messages are opaque — SlackMQ imposes no structure on content. The protocol lives entirely in topology wiring and emoji reactions.
Quick Example¶
Register a topic and subscribe a queue:
Every message posted to #deployments is now automatically copied to #ops-alerts for consumers to process.
Next Steps¶
- Installation — get the broker running
- Configuration — tune broker behaviour
- Go SDK — publish and consume from Go
- Python SDK — publish and consume from Python