Packages
eventstore
0.13.1
1.4.8
1.4.7
1.4.6
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.3
1.2.2
1.2.1
1.2.0
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.14.0-rc.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.11.0-rc.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.1
0.2.0
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Event store using PostgreSQL for persistence.
Current section
Files
Jump to
Current section
Files
lib/event_store/subscriptions/stream_subscription_provider.ex
defmodule EventStore.Subscriptions.StreamSubscriptionProvider do
@moduledoc """
Specification to access subscription related event info from a single, or all streams
"""
@type event :: EventStore.RecordedEvent.t
@type subscription :: EventStore.Storage.Subscription.t
@type stream_uuid :: String.t
@type ack :: {event_number :: non_neg_integer(), stream_version :: non_neg_integer()}
@type subscription_name :: String.t
@type last_seen :: non_neg_integer()
@type read_batch_size :: non_neg_integer()
@doc """
Get the last seen `event_number` or `stream_version` from the acknowledgement
"""
@callback extract_ack(ack) :: non_neg_integer()
@doc """
Get the `event_number` or `stream_version` from the given event
"""
@callback event_number(event) :: non_neg_integer()
@doc """
Get the last ack'd event for the given subscription
"""
@callback last_ack(subscription) :: non_neg_integer()
@doc """
Get a stream of events since the last seen, fetched in batches limited to given size
"""
@callback unseen_event_stream(stream_uuid, last_seen, read_batch_size) :: Enumerable.t
@doc """
Acknowledge receipt of the last seen event for the stream and subscription
"""
@callback ack_last_seen_event(stream_uuid, subscription_name, last_seen) :: :ok
| {:error, reason :: any()}
end