Packages
x3m_system
0.7.6
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 - telemetry duration should be native_time
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