Pub

Performs interactions with EventBus

Initial creation

This library is created with the following command:

mix new --module Pub --sup --app lib_event_bus lib-eventbus

Installation

Add in your mix.exs:

defp deps do
[
# another packages here ...
{:lib_event_bus, "0.1.0", organization: "rentbrella"}
]
end

Configuration

Environment variables

This library depends of the following environment variables to work correctly:

Callback functions

Configure callback functions according bellow:

config :lib_elixir_eventbus,
callbacks: [
{"event1", &MyCoolModule.my_func1/1},
{"event2", &MyCoolModule.my_func2/1},
{"event3", &MyCoolModule.my_func3/1}
]

These functions will be called whenever a new message is arrived by SQS. The argument of this function will be a struct %SQSMessage{} representing the received message.

Note that is possible set up different functions for different events.

Usage

Publishing a message

alias Pub
alias Pub.Event
{:ok, event} = Event.new("event1", %{"user_id" => 1})
EventBus.publish(event)

Receiving a message

alias Pub
EventBus.get_message()