Show HN: Mqutils – Universal Go message queue library

3 DjGilcrease 0 6/22/2025, 10:22:32 PM mqutils.dev ↗
The Problem Enterprise Go apps typically use multiple message queues: RabbitMQ for reliability, Kafka for streaming, SQS for cloud, NATS for microservices, Redis for caching. Each has different APIs, error handling, and testing strategies.

Result: Teams spend months learning 6+ SDKs instead of building features. Migration = complete rewrites.

The Solution mqutils provides one unified API for 6 major message queue systems. Same code, different URL:

// Switch systems by changing URL only consumer, err := mqutils.NewConsumer("amqp://localhost:5672/orders") consumer, err := mqutils.NewConsumer("kafka://localhost:9092/orders") consumer, err := mqutils.NewConsumer("sqs://us-east-1/orders")

// Same handler code works everywhere consumer.RegisterHandler("process", func(msg types.Message) error { return processOrder(msg.Body()) }) Why It's Different Not just another wrapper. Production-grade features built-in:

Health monitoring across all 6 systems Batch processing with configurable timeouts Graceful shutdown with proper cleanup Context propagation for distributed tracing Thread-safe operations with race condition prevention Performance: 100K+ msg/sec, <10ms P99 latency, 99.9% uptime in production.

Supported Systems AMQP/RabbitMQ (amqp://) Apache Kafka (kafka://) NATS Core/JetStream (nats://, jetstream://) AWS SQS (sqs://) GCP Pub/Sub (pubsub://) Redis Pub/Sub & Streams (redis://, redisstream://)

Comments (0)

No comments yet