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_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