0.1.5 • Published 2 years ago

simple-kafka-producer v0.1.5

Weekly downloads
18
License
ISC
Repository
github
Last release
2 years ago

Simplified Kafka Producer

This is a Node module to streamline Kafka integration for Node services. It's intended to provide a common and heavily-abstracted Kafka client to use for producing messages into the Kafka cluster.

This is essentially a wrapper for the kafka-node library.

Installation

You can install this through NPM:

npm install simple-kafka-producer --save

Setup

Setup for a producer is pretty minimal. This adapter supports plaintext SASL as an authorization mechanism, so you'll need to provide those credentials if that's how your cluster is configured.

const kafkaProducer = require("simple-kafka-producer");

// Set everything up
kafkaProducer.configure({
    brokers: "localhost:9092",
    saslUser: "insecure",
    saslPass: "credentials"
})

Once you've assigned your Kafka information, you'll need to initialize the client before you can send anything.

kafkaProducer.initProducer();

After that, you should be able to send messages to a given Kafka topic with:

kafkaProducer.produceMessage("test-1", "a message!");

You can set an optional callback with the producer that will be called after a message is produced, containing its Kafka offset:

kafkaProducer.setCallback(function(topic, offset, message) {
    console.log(`[Kafka Producer Example]: ${topic}@${offset}: ${message}`)
});

That's all there is to it.

Failure Tolerance

This adapter is set up to cache any messages that failed to send and try to resend them after a short delay. You shouldn't need to handle any of this yourself. Do note:

  • If the connection to your Kafka cluster is lost, then the adapter will begin caching all messages and will attemtp to send them / flush its cache in reconnection.
  • If for some reason the service is killed during this process, those cached messages will be lost.
0.1.5

2 years ago

0.1.4

3 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago