- At-least-once delivery guarantee
- Multiple persistence options: BadgerDB or in-memory storage
- TCP-based communication protocol
- Automatic retry mechanism for failed messages
- Topic-based message routing
- Docker support for easy deployment
git clone https://github.com/tomiok/queuety.git
cd queuety
# Build the image
docker build -t queuety:latest .
# Run with BadgerDB persistence (default and only one by now)
docker run -d --name queuety queuety:latest
# Download the binary (replace with actual release URL)
wget https://github.com/tomiok/queuety/releases/download/{version}/queuety
# Make it executable
chmod +x queuety
# Run with BadgerDB (creates ./badger directory)
./queuety
- Pros: Persistent storage, crash recovery, high performance
- Cons: Requires disk space
- Use case: Production environments, when message durability is critical
Just run the server as the example above, or if you use this repo, go to the examples package.
The client, for this particular case is written in the same package (because if you fork you just need to change one repository) and can be used as a library, inside the manager package.
git clone https://github.com/tomiok/queuety.git
cd queuety
go build -o queuety ./server/main/main.go
make build
make run
make logs
make stop
make clean
The client is only in GitHub now, you can use go get in order to use the manager. go install github.com/tomiok/queuety/manager@v0.0.4
- At-least-once delivery
- BadgerDB persistence
- In-memory storage option
- Docker support
- gRPC support
- Authentication (user/password)
- Clustering
- REST API
- Metrics and monitoring
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
GPL 3.0