Packages
x3m_system
0.9.1
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
Current section
Files
Jump to
Current section
Files
lib/gen_aggregate_mod.ex
defmodule X3m.System.GenAggregateMod do
@moduledoc !"""
Internal. Behaviour implemented by `X3m.System.GenAggregate`, letting message
handlers talk to the aggregate process through a swappable contract.
"""
@callback apply_event_stream(pid, function) :: :ok
@callback handle_msg(pid, atom, X3m.System.Message.t(), Keyword.t()) ::
{:ok, X3m.System.Message.t(), any} | any
@callback commit(pid, String.t(), X3m.System.Message.t(), integer) ::
{:ok, X3m.System.Aggregate.State.t()} | :transaction_timeout
@callback set_state(pid, loaded_state :: term(), version :: integer()) :: :ok
end