Show HN: A Go service that exposes a FIFO message queue in RAM
10 months ago
- #Message-Queue
- #Go
- #Microservice
- A single-binary Go microservice for a RAM-based FIFO message queue.
- Balances simplicity and high-throughput with a plain slice + mutex and lock-free atomic counters.
- Supports HTTP/TLS, structured logging, and health endpoints for easy integration into micro-service stacks.
- Features ultra-low-latency queueing for transient messages (≤ 128 KB each).
- Enforces hard caps (maxBytes, maxMsgs) to guard RAM usage.
- Concurrency-safe design using a mutex + atomic counters.
- Provides JSON metrics, TLS option, and graceful shutdown.
- Includes endpoints for enqueue, dequeue, clear, persist, load, metrics, and health checks.
- Optimized for performance with O(1) operations for enqueue and dequeue.
- Supports graceful shutdown to ensure no message corruption during redeploys.
- Includes telemetry for monitoring queue size, Go goroutines, and FD usage.
- Designed for easy debugging with zero client codegen and trivial curl commands.
- Supports TLS for secure communication.
- Includes flags and environment variables for configuration.
- Provides best practices for deployment, including process supervision and alerting.