Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
mugli committed Aug 12, 2019
1 parent 9057192 commit d991f44
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ orkid</h1>
![](https://img.shields.io/node/v/orkid.svg?style=flat)
![](https://img.shields.io/npm/l/orkid.svg?style=flat)

Reliable and modern [Redis-streams](https://redis.io/topics/streams-intro) based task queue for Node.js.
Reliable and modern [Redis-Streams](https://redis.io/topics/streams-intro) based task queue for Node.js.

# Screenshot

Expand All @@ -27,15 +27,15 @@ Reliable and modern [Redis-streams](https://redis.io/topics/streams-intro) based

# Why a new job queue for Node.js

- All the redis-based solutions were created before [Redis-streams](https://redis.io/topics/streams-intro) became available. They all require a lot of work on the queue-side to ensure durability and atomicity of jobs. Redis streams was specifically designed to made this kind of tasks easier, thus allows simpler core in the queue and more reliable operations.
- All the redis-based solutions were created before [Redis-Streams](https://redis.io/topics/streams-intro) became available. They all require a lot of work on the queue-side to ensure durability and atomicity of jobs. Redis-Streams was specifically designed to made this kind of tasks easier, thus allows simpler core in the queue and more reliable operations.

- None of existing usable job queues in Node.js offers a monitoring option that we liked.

- None of the existing usable task queues support task deduplication.

# Features

- [x] Orkid lets Redis do the heavy lifting with [redis streams](https://redis.io/topics/streams-intro).
- [x] Orkid lets Redis do the heavy lifting with [Redis-Streams](https://redis.io/topics/streams-intro).
- [x] **Adjustable concurrency** per consumer instance for scaling task processing. See example code. [See example code](https://github.com/mugli/orkid-node/tree/master/examples/basic).
- [x] Job **timeouts** and **retries**. All configurable per consumer. [See example code](https://github.com/mugli/orkid-node/tree/master/examples/failure-timeout-retry).
- [x] Task **Deduplication**. If a task is already waiting in the queue, it can be configured to avoid queueing the same task again. _(Useful for operations like posting database record updates to elasticsearch for re-indexing. Deduplication is a common pattern here to avoid unnecessary updates)_. [See example code](https://github.com/mugli/orkid-node/tree/master/examples/deduplication).
Expand All @@ -48,7 +48,7 @@ Reliable and modern [Redis-streams](https://redis.io/topics/streams-intro) based
- Node.js >= 10
- Redis >= 5

👏 **Important**: [Redis-streams](https://redis.io/topics/streams-intro) was not available before **Redis 5**! Please make sure you are meeting the requirement here.
👏 **Important**: [Redis-Streams](https://redis.io/topics/streams-intro) was not available before **Redis 5**! Please make sure you are meeting the requirement here.

# Install

Expand Down Expand Up @@ -132,7 +132,7 @@ consumer.start();

<details>
<summary>How do I set priority in the tasks?</summary>
Redis Streams isn't a suitable primitive to make a priority queue efficiently on top of it. Orkid doesn't support priority queues now and probably never will.
Redis-Streams isn't a right primitive to make a priority queue efficiently on top of it. Orkid doesn't support priority queues now and probably never will.

However, as a workaround, you can create a separate queue, keep its workload minimal and use it for high priority jobs with Orkid.

Expand Down

0 comments on commit d991f44

Please sign in to comment.