Packages
event_bus
0.2.1
1.7.0
1.6.2
1.6.1
1.6.0
retired
1.5.2
retired
1.5.1
retired
1.5.0
retired
1.4.4
retired
1.4.3
retired
1.4.2
retired
1.4.1
retired
1.4.0
retired
1.3.8
retired
1.3.7
retired
1.3.6
retired
1.3.5
retired
1.3.4
retired
1.3.3
retired
1.3.2
retired
1.3.1
retired
1.3.0
retired
1.2.0
retired
1.1.3
retired
1.1.2
retired
1.1.1
retired
1.1.0
retired
1.0.0
retired
1.0.0-beta4
retired
1.0.0-beta3
retired
1.0.0-beta2
retired
1.0.0-beta1
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.1
retired
0.6.0
retired
0.5.0
retired
0.4.1
retired
0.4.0
retired
0.3.1
retired
0.3.0
retired
0.2.1
retired
0.2.0
retired
0.1.0
retired
Traceable, extendable and minimalist event bus implementation for Elixir with built-in event store and event watcher based on ETS
Retired package: Deprecated
Current section
Files
Jump to
Current section
Files
lib/event_bus/application.ex
defmodule EventBus.Application do
@moduledoc false
use Application
alias EventBus.EventManager
alias EventBus.EventStore
alias EventBus.EventWatcher
alias EventBus.SubscriptionManager
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
worker(SubscriptionManager, [], id: make_ref(), restart: :permanent),
worker(EventManager, [], id: make_ref(), restart: :permanent),
worker(EventStore, [], id: make_ref(), restart: :permanent),
worker(EventWatcher, [], id: make_ref(), restart: :permanent)
]
opts = [strategy: :one_for_one, name: EventBus.Supervisor]
link = Supervisor.start_link(children, opts)
register_events()
link
end
defp register_events do
events = Application.get_env(:event_bus, :events, [])
Enum.each(events, fn event_name ->
EventStore.register_event(event_name)
EventWatcher.register_event(event_name)
end)
end
end