sinek

Node.js kafka client, consumer, producer polite out of the box

Usage no npm install needed!

<script type="module">
  import sinek from 'https://cdn.skypack.dev/sinek';
</script>

README

High Level Node.js Kafka Client

Build Status npm version

The most advanced Kafka Client.

Features

  • easy promise based API
  • a lot of Kafka pitfalls already taken care of
  • backpressure and stream consume modes
  • secure committing in backpressure (1:n, batch) mode
  • plain Javascript implementation based on kafka-node and a super fast native implementation based on node-rdkafka
  • SSL, SASL & Kerberos support
  • auto reconnects
  • auto partition recognition and deterministic spreading for producers
  • intelligent health-checks and analytic events for consumers and producers

You might also like

Latest Changes

Can be found here

Install

npm install --save sinek

Usage

Usage - JS Client (based on kafka.js)

const {
  JSConsumer,
  JSProducer
} = require("sinek");

const jsProducerConfig = {
  clientId: "my-app",
  brokers: ["kafka1:9092"]
}

(async () => {

  const topic = "my-topic";

  const producer = new JSProducer(jsProducerConfig);
  const consumer = new JSConsumer(topic, jsConsumerConfig);

  producer.on("error", error => console.error(error));
  consumer.on("error", error => console.error(error));

  await consumer.connect();

  // consume from a topic.
  consumer.consume(async (messages) => {
    messages.forEach((message) => {
      console.log(message);
    })
  });

  // Produce messages to a topic.
  await producer.connect();
  producer.send(topic, "a message")
})().catch(console.error);

Further Docs

make it about them, not about you

  • Simon Sinek