- Madq is a messaging queue built in Go. This project aims to provide a robust, scalable and custom-built message queue system. It uses a filesystem-like architecture internally for storing and managing messages. It is designed to be used as a library in other projects.
- Make sure to have Go installed
- go build
- Execute the compiled binary to start the messaging queue.
-
Message Publishing API: Build APIs to allow users to publish messages to the queue.
-
Message Consumption API: Implement APIs to consume messages from the queue.
-
Use of locks & atomic operations to make it concurrent-safe
-
low level file system operation module for high performance
-
Expand madq.go: Flesh out the main program to provide more functionalities.
-
Error Handling in flush.go: Implement robust error handling, particularly in the handleOps method.
-
Unit Tests: Create unit tests for existing and new features to ensure reliability.
-
Optimization in inode.go: Explore ways to optimize the inode system for better performance and error recovery.
-
Build a CLI tool for this?
-
Concurrency: Evaluate and optimize for concurrent operations.
-
Monitoring & Logging: Add capabilities for monitoring queue health and message status.
-
Message Retention Policies: Add support for setting message retention policies.