@frubana/adonis-kafka

0.1.10 • Public • Published

Kafka Adonis Provider

Setup

Add kafka when your app start.

// server.js

new Ignitor(fold)
  .appRoot(__dirname)
  // Only add the next line
  .preLoad("start/kafka")
  .fireHttpServer()
  .catch(console.error);

Make sure to register the provider and make all of the following necessary changes inside the start/app.js file!

// Add the kafka provider
const providers = [
  // ...
  "@frubana/adonis-kafka/providers/Provider"
];

Config

Please update configuration before use. The configuration file is config/kafka.js.

Adding topics

// start/kafka.js

const Kafka = use("Kafka");

// Callback function
Kafka.on("topic_name", (data, commit) => {
  commit();
});

// Multiples topics with one controller.

Kafka.on("topic_name_1,topic_name_2,topic_name_3", (data, commit) => {
  commit();
});


// Controller function
Kafka.on("topic_name", "TestController.index");

Define your controller

// app/Controllers/Kafka/TestController.js

/** @type {import('@adonisjs/framework/src/Logger')} */
const Logger = use("Logger");

class TestController {
  index(data, commit) {
    Logger.info("kafka data", data);

    commit();
  }
}

module.exports = TestController;

Produce events

// app/Controllers/Http/TestController.js

const Kafka = use("Kafka");

class TestController {
  somefunction() {
    // data is a json object

    const data = {};
    Kafka.send("topicname", data);
  }
}

/@frubana/adonis-kafka/

    Package Sidebar

    Install

    npm i @frubana/adonis-kafka

    Weekly Downloads

    61

    Version

    0.1.10

    License

    none

    Unpacked Size

    10.9 kB

    Total Files

    12

    Last publish

    Collaborators

    • frubana1
    • emil_hm_frubana
    • cristocaceres
    • mleonardom
    • andresilvagomez
    • eslavadev