Show HN: Mqutils – Universal Go message queue library https://ift.tt/i8kYTe1

Show HN: Mqutils – Universal Go message queue library 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://) https://mqutils.dev/ June 23, 2025 at 01:22AM

Post a Comment

0 Comments