Packages
x3m_system
0.8.0
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
retired
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
retired
0.7.7
0.7.6
retired
0.7.5
0.7.4
retired
0.7.3
retired
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
retired
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.1.1
0.1.0
Building blocks for distributed and/or CQRS/ES systems
Retired package: Release invalid - Pushed by mistake
Current section
Files
Jump to
Current section
Files
lib/aggregate_group.ex
defmodule X3m.System.AggregateGroup do
use Supervisor
alias X3m.System.{AggregatePidFacade, AggregatePidManager}
def start_link(prefix, aggregate_mod),
do: Supervisor.start_link(__MODULE__, {prefix, aggregate_mod}, name: name(aggregate_mod))
@impl Supervisor
def init({prefix, aggregate_mod}) do
children = [
{AggregatePidManager, [prefix, aggregate_mod]},
{AggregatePidFacade, aggregate_mod}
]
Supervisor.init(children, strategy: :one_for_one)
end
def name(aggregate_mod),
do: Module.concat(aggregate_mod, Group)
end