A fast, durable, task-scheduling queue. This is intended as an exercise, but hopefully can be made into a production ready one.
antri is indonesian for waiting in a queue
- Clone the repo,
git@github.com:aarondwi/antri.git
- Install go compiler on your platform
- cd into the repo, and build with
go build .
See the code directly for usages
- Targeted to work both on windows and linux only
- using grpc, easy to create client
- batch add/get/commit
- at least once delivery (with task timeout)
- task scheduling/visibility, e.g. how many seconds from commit before the task can be retrieved
- durability (via wal, and periodic snapshotting for faster recovery)
- NOT production ready
- There are no supports for topic/subscription. This implementation focus on the internal of each queue. Topic/subscription can easily be implemented on top of it. And anyway, priority and/or scheduled task (imo) don't match with concept of subscription (multiple consumer group).
- Following above, multi-tenancy also not implemented (yet). This one gonna be useful for smaller usage which aims to maximize resource usage.