Popularity
4.3
Growing
Activity
0.0
Stable
25
3
6

Monthly Downloads: 20
Programming language: Elixir
License: MIT License
Tags: Queue    

kafka_consumer alternatives and similar packages

Based on the "Queue" category

Do you think we are missing an alternative of kafka_consumer or a related project?

Add another 'Queue' Package

README

Kafka consumer

Scalable consumer for Kafka using brod.

Installation

If available in Hex, the package can be installed as:

  • Add kafka_consumer to your list of dependencies in mix.exs:
def deps do
  [{:kafka_consumer, "~> 2.0"}]
end
  • Ensure kafka_consumer is started before your application:
def application do
  [applications: [:kafka_consumer]]
end

Usage

  • Set config or pass default attributes
config :brod,
  clients: [
    kafka_client: [
      endpoints: [{'localhost', 9092}],
      auto_start_producers: true
    ]
  ]
  • Write your own Consumer. Functions handle_async/1 and handle_sync/2 is overridable
defmodule KafkaConsumer.ExampleConsumer do
  use KafkaConsumer.Consumer

  def handle_async(_message) do
    :ok
  end
end
  • Set event handlers in config.
config :kafka_consumer,
  consumers: [
    [client: :kafka_client,
     group_id: "messaging",
     topics: ["message-events", "system-events"],
     callback: KafkaConsumer.ExampleConsumer,
     callback_args: []]
  ]

  • Define KafkaConsumer.Supervisor as child supervisor of your app.
children = [
  supervisor(KafkaConsumer.Supervisor, []),
]
opts = [strategy: :one_for_one, name: YourApplication.Supervisor]
Supervisor.start_link(children, opts)
  • Start your app.