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-eventbusInstallation
Add in your mix.exs:
defp deps do
[
# another packages here ...
{:lib_event_bus, "0.1.0", organization: "rentbrella"}
]
endConfiguration
Environment variables
This library depends of the following environment variables to work correctly:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SQS_QUEUEAWS_SNS_TOPIC_ARN
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()