hapi-kafka-plugin

1.1.2 • Public • Published

Hapi Kafka Plugin

It's a plugin for Hapi.js with support until the version 16 that implement a Kafka client using node-rdkafka

Usage

Install Hapi Kafka Plugin using npm:

npm install --save hapi-kafka-plugin

To register the plugin you must require it

const KafkaPlugin = require('hapi-kafka-plugin')

Configuration

The plugin require some paremeteres listed bellow:

Parameter Description Type Required Example
host Kafka broker host string yes localhost or kafka (if you are using Docker)
port Kafka broker port number yes 9092
debug Flag that allows to the package write logs in console boolean no (default value: true) true or false
errorListener Listener for any error encounter function no (eror) => { console.error('An error has been ocurred', error) }

How to use it

You have to register the plugin in the hapi.js server, and then your are going to have a property in the plugin's servers that allows you to access to the kafka producer connection.

const KafkaPlugin = require('hapi-kafka-plugin')
 
server.register({
  register: KafkaPlugin,
  options: {
    host: 'localhost',
    port: 9092,
  }
}).then(() => {
  console.log('Kafka has been started')
 
  // And now is available in the server
  server.plugins.kafka.producer(
    'topic',
    null,
    Buffer.from('hello world'),
    null,
    Date.now(),
  )
})

Tests

Before you run your tests, you have to run a Kafka container configured con Zookeper, you need to install Docker and then run the docker image of Kakfa

docker run -p 2181:2181 -p 9092:9092 --env ADVERTISED_HOST=`docker-machine ip \`docker-machine active\`` --env ADVERTISED_PORT=9092 spotify/kafka

Tests are written in Jest to tests Javascript code.

npm test

Created with ❤️ by Yalo

Package Sidebar

Install

npm i hapi-kafka-plugin

Weekly Downloads

0

Version

1.1.2

License

MIT

Unpacked Size

7.6 kB

Total Files

9

Last publish

Collaborators

  • tarikferes
  • manuelcordon-yalo
  • waltermoorlag
  • reinholdyalo
  • cesar-aguirre-yalo
  • byronramos
  • adanmuguiro
  • uriel-yalo
  • ochoa_yalo
  • dapryalo
  • bonniemilianb
  • guilhermesborz
  • gago_ar
  • catyalere
  • jfelix-yalo
  • gabriel_yalo
  • janetyalo
  • julio.gonzalez
  • branmendozay
  • zkropotkine
  • fernandorincon
  • gustavoyalo
  • moisesflores22
  • josepablohm
  • yaogomezyalo
  • rommelyalopartner
  • yalo-engineering