Skip to content

Commit 376fc49

Browse files
committed
Bump version to v3.0.4: README and package.json improvements
1 parent 07fd91a commit 376fc49

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<h2 align="middle">Zero Backpressure Semaphore Typescript</h2>
22

33
The `ZeroBackpressureSemaphore` class implements a semaphore for Node.js projects, allowing users to limit the number of concurrently executing jobs.
4-
This implementation does not queue pending jobs, thereby eliminating backpressure. As a result, users have better control over memory footprint, which enhances performance by reducing garbage-collector overhead.
4+
This implementation does not queue pending jobs. Conversly, it promote a **just-in-time** approach, thereby eliminating backpressure. As a result, users have better control over memory footprint, which enhances performance by reducing garbage-collector overhead.
5+
6+
To illustrate the benefits of backpressure prevention, consider a scenario where messages from a message broker, such as RabbitMQ or Kafka, are translated into jobs. For example, in a stock-exchange broker system, each message might contain a username, and each job processes all pending buy/sell requests for that user. If consumers using a semaphore pull messages too quickly, messages may accumulate for extended periods, potentially triggering the broker's TTL (Time to Live).
57

68
The design addresses the two primary semaphore use cases in Node.js:
79
* __Multiple Jobs Execution__: This use case involves a single caller dispatching multiple jobs, often serving as the sole owner of the semaphore instance.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "zero-backpressure-semaphore-typescript",
3-
"version": "3.0.3",
4-
"description": "A classic semaphore with modern API, inspired by the RAII idiom. Offering backpressure control for enhanced efficiency, utilizing a communicative API that signals availability. Additionally, it incorporates mechanisms for graceful termination and error handling, making it suitable for complex scenarios.",
3+
"version": "3.0.4",
4+
"description": "A modern Promise-semaphore for Node.js projects, enabling users to limit the number of concurrently executing promises. Offering backpressure control for enhanced efficiency, utilizing a communicative API that signals availability, promoting a just-in-time approach. Additionally, it incorporates mechanisms for graceful termination and error handling, making it suitable for complex scenarios.",
55
"repository": {
66
"type": "git",
77
"url": "git+https://github.com/ori88c/zero-backpressure-semaphore-typescript.git"
@@ -32,14 +32,15 @@
3232
"promise-limiter",
3333
"promise-semaphore",
3434
"promise-pool",
35-
"tasks-semaphore",
36-
"tasks-pool",
35+
"task-semaphore",
36+
"task-pool",
3737
"scheduler",
3838
"executor",
3939
"uncaught-error",
4040
"uncaught-rejection",
4141
"async",
4242
"nodejs",
43+
"Node.js",
4344
"typescript",
4445
"ts",
4546
"ES2020"

0 commit comments

Comments
 (0)