abstract class Movie::Persistence::SqlBackendConnection

Overview

Shared SQL connection primitives. Persistence concerns reopen this class in focused files so dialect hooks and connection ownership stay central.

Direct Known Subclasses

Defined in:

movie/persistence/sql_backend.cr
movie/persistence/sql_fencing.cr
movie/persistence/sql_journal.cr
movie/persistence/sql_outbox.cr
movie/persistence/sql_query.cr
movie/persistence/sql_retention.cr
movie/persistence/sql_schema.cr
movie/persistence/sql_state.cr

Constructors

Instance Method Summary

Instance methods inherited from class Movie::Persistence::BackendConnection

acknowledge_outbox(message : AcknowledgeOutbox) : Int64 acknowledge_outbox, acquire_shard_lease(message : AcquireShardLease) : ShardLeaseToken | Nil acquire_shard_lease, claim_outbox(message : ClaimOutbox) : Array(StoredOutboxEntry) claim_outbox, close : Nil close, connection_lost?(error : Exception) : Bool connection_lost?, delete_events_to(message : DeleteEventsTo) : RetentionResult delete_events_to, delete_projection_offset(message : DeleteProjectionOffset) : Bool delete_projection_offset, ensure_schema : Nil ensure_schema, exec(message : DbExec) : Nil exec, exec_last_id(message : DbExecLastId) : Int64 exec_last_id, load_projection_offset(message : LoadProjectionOffset) : Int64 load_projection_offset, query_events(message : QueryEvents) : EventPage query_events, query_string(message : DbQueryString) : String | Nil query_string, query_strings(message : DbQueryStrings) : Array(String) query_strings, release_outbox(message : ReleaseOutbox) : Bool release_outbox, release_shard_lease(message : ReleaseShardLease) : Bool release_shard_lease, renew_shard_lease(message : RenewShardLease) : ShardLeaseToken | Nil renew_shard_lease, run_maintenance(message : RunMaintenance) : MaintenanceResult run_maintenance, save_projection_offset(message : SaveProjectionOffset) : Int64 save_projection_offset, schema_version : Int64 schema_version

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

Constructor Detail

def self.new(connection : DB::Connection) #

[View source]

Instance Method Detail

def acknowledge_outbox(message : AcknowledgeOutbox) : Int64 #

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

[View source]
def append_events(message : AppendEvents) : WriteResult #

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

[View source]
def close : Nil #

[View source]
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 delete_snapshot(message : DeleteSnapshot) : Nil #

[View source]
def delete_state(message : DeleteState) : WriteResult #

[View source]
def ensure_event_store : Nil #

[View source]
def ensure_schema : Nil #
Description copied from class Movie::Persistence::BackendConnection

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


[View source]
def ensure_state_store : Nil #

[View source]
def exec(message : DbExec) : Nil #
Description copied from class Movie::Persistence::BackendConnection

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_events(message : LoadEvents) : Array(StoredEvent) #

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

[View source]
def load_snapshot(message : LoadSnapshot) : SnapshotRecord | Nil #

[View source]
def load_state(message : LoadState) : StateRecord | Nil #

[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 save_snapshot(message : SaveSnapshot) : Nil #

[View source]
def save_state(message : SaveState) : WriteResult #

[View source]
def schema_version : Int64 #

[View source]