Packages
x3m_system
0.7.13
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/aggregate_repo.ex
defmodule X3m.System.Aggregate.Repo do
@callback has?(stream_name :: String.t()) :: boolean
@callback stream_events(
stream_name :: String.t(),
start_at :: non_neg_integer(),
per_page :: pos_integer()
) :: Enumerable.t()
@callback delete_stream(
stream_name :: String.t(),
hard_delete? :: boolean,
expected_version :: integer()
) :: :ok
@callback save_events(
stream_name :: String.t(),
message :: X3m.System.Message.t(),
events_metadata :: map()
) ::
{:ok, last_event_number :: integer}
| {:error, :wrong_expected_version, expected_last_event_number :: integer}
| {:error, any}
defmacro __using__(_opts) do
quote do
@moduledoc false
@behaviour X3m.System.Aggregate.Repo
end
end
end