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

Latest commit

 

History

History
35 lines (26 loc) · 1.5 KB

README.md

File metadata and controls

35 lines (26 loc) · 1.5 KB

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.