Introduction

Introduction

TellThem is an asynchronous communication library for Node.js.

  • 🗄️ Support PubSub and Point to Point
  • 💡 Simple and easy to use
  • 🚀 Many drivers (Redis, In-memory, AMQP, MQTT)
  • 🔁 Retry queue
  • ✅ Typesafe channels
  • 📖 Well documented
  • 🧩 Easily extendable with your own encoders and drivers

Why TellThem ?

I wanted a simple driver based and typesafe library to communicate with my services. Since I'm using AdonisJS for most of my projects, I initially created a library for this framework called adonis6-amqp. But when I wanted to use it in a standalone project, I realized that I needed a more generic library. I found out that there is a perfect library for this purpose called @boringnode/bus, but it's not typesafe , so I decided to create my own that combine the best of both worlds.

Features

Below is a list of the main features of TellThem. If you want to know more about a specific feature, you can check the associated documentation page.

PubSub

TellThem supports PubSub communication.

In a PubSub system, all subscribers are notified when a message is published.

Point to Point

TellThem supports Point to Point communication, also called Message Queue.

In a Point to Point system, only one subscriber is notified when a message is published, it works like a queue.

Lot of drivers

Lot of drivers are available: Redis, In-memory, AMQP, MQTT. (Kafka planned)

If you don't find the driver you need, you can easily create your own driver.

Retry queue

Retry queue is a queue that will retry a message if it fails to be published. For example if your AMQP server is down, the message will be retried.

Typesafe channels

Channels are typed using the encoder system. You can validate your messages before publishing/receiving them.

Credits

This library is inspired by @boringnode/bus.