Packages

Brook provides an event stream client interface for distributed applications. Brook sends and receives messages with the event stream via a driver module and persists an application-specific view of the event stream via a storage module.

Current section

Files

Jump to
brook lib brook driver kafka handler.ex
Raw

lib/brook/driver/kafka/handler.ex

defmodule Brook.Driver.Kafka.Handler do
@moduledoc """
Implements the Elsa message handler behaviour for
the Brook Kafka driver.
"""
use Elsa.Consumer.MessageHandler
require Logger
@doc """
Takes a list of Kafka messages consumed by Elsa and
processes each with Brook.
"""
@spec handle_messages([term()]) :: :ack
def handle_messages(messages, state) do
messages
|> Enum.map(fn message -> message.value end)
|> Enum.each(&Brook.Event.process(state.instance, &1))
{:ack, state}
end
end