Skip to main content

KafkaJS Client

The KafkaJS client can be used to create Kafka producers, consumers. Full documentation here.

Installation

Install KafkaJS using:

yarn add kafkajs

or npm:

npm install kafkajs

Instantiate the KafkaJS client by pointing it towards at least one broker:

const { Kafka } = require('kafkajs')

const kafka = new Kafka({
clientId: '<my-app>',
brokers: ['<my-gdn>.<my-paas>.macrometa.io:9093'],
sasl: { mechanism: 'plain', username: "<my-tenant>/<my-fabric>", password: "token:<my-api-key>" },
ssl: {
rejectUnauthorized: false
}
})

Producer

To produce a message to a topic, create a producer using our client:

const producer = kafka.producer()

await producer.connect()
await producer.send({
topic: '<c8globals or c8locals>.<my-topic>',
messages: [
{ value: 'Hello KafkaJS user!' },
],
})

await producer.disconnect()

Consumer

To verify the message has been sent to the topic, create a consumer to consume the message:

const consumer = kafka.consumer({ groupId: '<my-group-id>' })

await consumer.connect()
await consumer.subscribe({ topic: '<c8globals or c8locals>.<my-topic>', fromBeginning: true })

await consumer.run({
eachMessage: async ({ topic, partition, message }) => {
console.log({
value: message.value.toString(),
})
}
})