Quick and lightweight service designed to curate your data queues. If at any point during the project's lifespan you decide to give it a try, please open an issue if you run into any problems connecting to your data queues or processing any of your messages.
In this repo, I am including a sample configuration and a script to spin up both a RabbitMQ instance for AMQP messaging, and a mosquitto MQTT broker using Docker.
This project is written entirely in Go version 1.24.1 and is untested with any other versions. You can install Go at go.dev.
If you want to use the sample MQTT and AMQP brokers, you will need to install the Docker Engine CLI
- Clone the repo
git clone https://github.com/inw-software/queuerator- Run the script located at
scripts/broker.sh
./scripts/broker.sh-
Log into the the RabbitMQ instance running at
http://localhost:15672the default user/password combination isguest/guest. -
Create a queue to subscribe to. The sample config is pointed to a queue named
test_queue
Once you have your brokers running, you can run the project. Note: a configuration file path must be passed to the --config flag.
There is a sample config included with this repository.
- Run the project using
go
go run cmd/queuerator/main.go --config ./sample-config.json-
Using the RabbitMQ web UI, send any message to
test_queueand watch your terminal output for results. The current criteria model only operates on JSON messages. -
Using the Docker CLI, you can send commands to the mosquitto instance that will send a message to your subscribed topic(s). The sample config is subscribed to the
test/topictopic.
docker exec -it mosquitto \
mosquitto_pub -h localhost -t test/topic -m '{"sensor":42}'This project is still in its earliest phases. I would like to implement the following (in no particular order):
- Add basic AMQP support
- Add basic MQTT support
- Add basic Kafka Streams support
- Expand existing data feed support to be much more robust
- Build a comprehensive logging scheme
- Implement outbound message queues for propagating messages that satify the configured criteria.
- Implement LLM prompt-based criteria
- Design a deployable Dockerfile
- Add CICD pipeline to automate deployments
- Formalize JSON schema for configuration files
I am not seeking external contributions at this time. However, anyone may open a pull request that I will happily review and/or merge.