eventstore_client v0.1.1 EventStore.Behaviour behaviour
Summary
Callbacks
Ack an ackable event
Create a new subscription
Delete a stream. Options:
hard_delete: true
Delete an existing Subscription
Ensure a subscription exists. Assert that configuration matches any existing subscription
Generate a new valid event id
Load /info subscription
Nack a nackable event
Ping EventStore. Return {:ok, 200} on 200 OK, {:error, reason} otherwise
Read a stream given a specific offset (anchor), direction and size
Read from a subscription. Options:
count: 1
write_events write [%EventStore.Event{}] to storage
Callbacks
Specs
ack_events(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}, events :: [%EventStore.Event{data: term, eventId: term, eventNumber: term, eventType: term, isJson: term, isLinkMetaData: term, isMetaData: term, links: term, metadata: term, streamId: term, updated: term}]) ::
:ok |
{:error, reason :: any}
Ack an ackable event
Specs
create_subscription(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}) ::
{:ok, %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}} |
{:error, {:conflict, nil}} |
{:error, {:unexpected_status_code, code :: integer}}
Create a new subscription.
Specs
Delete a stream. Options:
hard_delete: true
Specs
delete_subscription(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}) ::
:ok |
{:error, :not_found} |
{:error, {:unexpected_status_code, code :: integer}}
Delete an existing Subscription
Specs
ensure_subscription(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}) ::
{:ok, %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}} |
{:error, :not_found} |
{:error, {:conflict, {:conflicting_keys, keys :: [atom]}}} |
{:error, {:unexpected_status_code, code :: integer}}
Ensure a subscription exists. Assert that configuration matches any existing subscription
Specs
follow_stream(client :: pid, response :: %EventStore.Response{eTag: term, entries: term, headOfStream: term, id: term, links: term, streamId: term}) ::
{:ok, %EventStore.Response{eTag: term, entries: term, headOfStream: term, id: term, links: term, streamId: term}} |
{:error, reason :: any}
follow_stream(client :: pid, stream :: String.t) ::
{:ok, %EventStore.Response{eTag: term, entries: term, headOfStream: term, id: term, links: term, streamId: term}} |
{:error, reason :: any}
Specs
load_subscription(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}) ::
{:ok, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}} |
{:error, :not_found} |
{:error, {:unexpected_status_code, code :: integer}}
Load /info subscription
Specs
nack_events(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}, events :: [%EventStore.Event{data: term, eventId: term, eventNumber: term, eventType: term, isJson: term, isLinkMetaData: term, isMetaData: term, links: term, metadata: term, streamId: term, updated: term}], action :: String.t) ::
:ok |
{:error, reason :: any}
Nack a nackable event
Specs
ping(client :: pid, options :: Keyword.t) ::
{:ok, 200} |
{:error, status :: integer} |
{:error, reason :: term}
Ping EventStore. Return {:ok, 200} on 200 OK, {:error, reason} otherwise
Specs
read_from_stream(client :: pid, stream :: String.t, movement :: tuple) ::
{:ok, response :: %EventStore.Response{eTag: term, entries: term, headOfStream: term, id: term, links: term, streamId: term}} |
{:error, reason :: any}
Read a stream given a specific offset (anchor), direction and size
Specs
read_from_subscription(client :: pid, subscription :: %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}, opts :: Keyword.t) ::
{:ok, %EventStore.Subscription{averageItemsPerSecond: term, config: term, connections: term, countSinceLastMeasurement: term, eventStreamId: term, getMessagesUri: term, groupName: term, lastKnownEventNumber: term, lastProcessedEventNumber: term, links: term, liveBufferCount: term, parkedMessageUri: term, readBufferCount: term, retryBufferCount: term, status: term, totalInFlightMessages: term, totalItemsProcessed: term}, [%EventStore.Event{data: term, eventId: term, eventNumber: term, eventType: term, isJson: term, isLinkMetaData: term, isMetaData: term, links: term, metadata: term, streamId: term, updated: term}]} |
{:error, reason :: any}
Read from a subscription. Options:
count: 1
Specs
write_events(client :: pid, stream :: String.t, events :: [%EventStore.Event{data: term, eventId: term, eventNumber: term, eventType: term, isJson: term, isLinkMetaData: term, isMetaData: term, links: term, metadata: term, streamId: term, updated: term}]) ::
{:ok, events :: [%EventStore.Event{data: term, eventId: term, eventNumber: term, eventType: term, isJson: term, isLinkMetaData: term, isMetaData: term, links: term, metadata: term, streamId: term, updated: term}]} |
{:error, reason :: any}
write_events write [%EventStore.Event{}] to storage