Skip to content

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

  1. Topics are Slack channels the broker watches for new messages
  2. Queues are Slack channels that receive copies of topic messages
  3. Subscriptions link topics to queues — messages fan out automatically
  4. Consumers claim messages with emoji reactions, then ACK or NACK
  5. 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:

/smq topic #deployments
/smq subscribe #ops-alerts to #deployments

Every message posted to #deployments is now automatically copied to #ops-alerts for consumers to process.

Next Steps