abstract class Movie::Persistence::BackendConnection

Overview

One physical backend connection. A connection is owned by exactly one ConnectionWorker and is never used from another execution context.

Included Modules

Direct Known Subclasses

Defined in:

movie/persistence/protocol.cr

Instance Method Summary

Instance methods inherited from module Movie::Persistence::OutboxBackend

acknowledge_outbox(message : AcknowledgeOutbox) : Int64 acknowledge_outbox, claim_outbox(message : ClaimOutbox) : Array(StoredOutboxEntry) claim_outbox, release_outbox(message : ReleaseOutbox) : Bool release_outbox

Instance methods inherited from module Movie::Persistence::QueryBackend

delete_projection_offset(message : DeleteProjectionOffset) : Bool delete_projection_offset, load_projection_offset(message : LoadProjectionOffset) : Int64 load_projection_offset, query_events(message : QueryEvents) : EventPage query_events, save_projection_offset(message : SaveProjectionOffset) : Int64 save_projection_offset

Instance methods inherited from module Movie::Persistence::RetentionBackend

delete_events_to(message : DeleteEventsTo) : RetentionResult delete_events_to, run_maintenance(message : RunMaintenance) : MaintenanceResult run_maintenance

Instance methods inherited from module Movie::Persistence::DurableStateBackend

delete_state(message : DeleteState) : WriteResult delete_state, ensure_state_store : Nil ensure_state_store, load_state(message : LoadState) : StateRecord | Nil load_state, save_state(message : SaveState) : WriteResult save_state

Instance methods inherited from module Movie::Persistence::SnapshotBackend

delete_snapshot(message : DeleteSnapshot) : Nil delete_snapshot, load_snapshot(message : LoadSnapshot) : SnapshotRecord | Nil load_snapshot, save_snapshot(message : SaveSnapshot) : Nil save_snapshot

Instance methods inherited from module Movie::Persistence::JournalBackend

append_events(message : AppendEvents) : WriteResult append_events, ensure_event_store : Nil ensure_event_store, load_events(message : LoadEvents) : Array(StoredEvent) load_events

Instance methods inherited from module Movie::Persistence::SchemaBackend

ensure_schema : Nil ensure_schema, schema_version : Int64 schema_version

Instance Method Detail

def acknowledge_outbox(message : AcknowledgeOutbox) : Int64 #

[View source]
def acquire_shard_lease(message : AcquireShardLease) : ShardLeaseToken | Nil #

[View source]
def claim_outbox(message : ClaimOutbox) : Array(StoredOutboxEntry) #

[View source]
abstract def close : Nil #

[View source]
abstract def connection_lost?(error : Exception) : Bool #

[View source]
def delete_events_to(message : DeleteEventsTo) : RetentionResult #

[View source]
def delete_projection_offset(message : DeleteProjectionOffset) : Bool #

[View source]
def ensure_schema : Nil #

Optional production capabilities retain compatibility with lightweight custom backends. SQL backends override all of them.


[View source]
def exec(message : DbExec) : Nil #

Raw SQL requests are retained for compatibility with the low-level connection API. Persistence itself never depends on them.


[View source]
def exec_last_id(message : DbExecLastId) : Int64 #

[View source]
def load_projection_offset(message : LoadProjectionOffset) : Int64 #

[View source]
def query_events(message : QueryEvents) : EventPage #

[View source]
def query_string(message : DbQueryString) : String | Nil #

[View source]
def query_strings(message : DbQueryStrings) : Array(String) #

[View source]
def release_outbox(message : ReleaseOutbox) : Bool #

[View source]
def release_shard_lease(message : ReleaseShardLease) : Bool #

[View source]
def renew_shard_lease(message : RenewShardLease) : ShardLeaseToken | Nil #

[View source]
def run_maintenance(message : RunMaintenance) : MaintenanceResult #

[View source]
def save_projection_offset(message : SaveProjectionOffset) : Int64 #

[View source]
def schema_version : Int64 #

[View source]