Skip to content
This repository has been archived by the owner on Dec 4, 2021. It is now read-only.
/ antri Public archive

A durable, task queue. This is intended as an exercise only!

License

Notifications You must be signed in to change notification settings

aarondwi/antri

Repository files navigation

antri

A fast, durable, task-scheduling queue. This is intended as an exercise, but hopefully can be made into a production ready one.

Trivia

antri is indonesian for waiting in a queue

Installation

  1. Clone the repo, git@github.com:aarondwi/antri.git
  2. Install go compiler on your platform
  3. cd into the repo, and build with go build .

Usage

See the code directly for usages

Features

  1. Targeted to work both on windows and linux only
  2. using grpc, easy to create client
  3. batch add/get/commit
  4. at least once delivery (with task timeout)
  5. task scheduling/visibility, e.g. how many seconds from commit before the task can be retrieved
  6. durability (via wal, and periodic snapshotting for faster recovery)

Notes

  1. NOT production ready
  2. 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).
  3. Following above, multi-tenancy also not implemented (yet). This one gonna be useful for smaller usage which aims to maximize resource usage.

Releases

No releases published

Packages

No packages published

Languages