@optum/knack-consumer-client

1.4.1 • Public • Published

knack-consumer-client

A module for consuming records from Apache Kafka with integrated avro support.

Usage

first things first...

$ npm i @optum/knack-consumer-client

options

  • subscriptions: Array array of subscription objects
    • subscription: [Object] consumer subscription info
      • topic: [String] name of topic
      • handler: [Function] handler for each record consumed
  • consumerConfig: [Object] librd consumer config
  • topicConfig: [Object] librd topic config
  • flowMode: [Boolean] run flow mode or control message intake cadence
  • logger: [Object] logger object with trace, debug, info, error methods
  • srOptions: [Object]: options to pass to knack-sr

Examples

const knackConsumerClient = require('@optum/knack-consumer-client');

const consumerConfig = {
    'client.id': 'my-kafka-client-v1',
    'group.id': 'my-kafka-group-v1',
    'metadata.broker.list': 'localhost:9092',
    'socket.keepalive.enable': true,
    'enable.auto.commit': true
};

const topicConfig = {
    'auto.offset.reset': 'earliest',
    // eslint-disable-next-line camelcase
    event_cb: () => {}
};

const topic = 'knack-test-topic-v1';

const handler = ({key, value, topic, timestamp}) => {
    // do stuff with record
};

// connect consumer with options
const testConsumer = await knackConsumerClient.connect({
    subscriptions: [{
        topic,
        handler
    }],
    consumerConfig,
    topicConfig,
    srOptions: {
        url: 'http://localhost:8081'
    }
});

process.on('SIGINT', async () => {
    await knackConsumerClient.disconnect();
});

Dependencies (4)

Dev Dependencies (6)

Package Sidebar

Install

npm i @optum/knack-consumer-client

Weekly Downloads

10

Version

1.4.1

License

Apache-2.0

Unpacked Size

19.6 kB

Total Files

5

Last publish

Collaborators

  • nthurow_uhg
  • npeschel
  • robertcrockett
  • ryantrapp
  • alex.aavang
  • eric-hc
  • tiffkwin
  • amyschoen
  • bwoodrin