module Karma::Idempotency

Defined in:

idempotency.cr
idempotency/committed_stream.cr
idempotency/committed_streams.cr
idempotency/fingerprint.cr
idempotency/record.cr
idempotency/registry.cr
idempotency/store.cr

Constant Summary

SNAPSHOT_FILE_NAME = "karma.idempotency.json"

Class Method Summary

Class Method Detail

def self.commit_stream(stream, begin_fingerprint : String, chunk_fingerprints : Hash(UInt64, String)) : CommittedStream #

[View source]
def self.committed_stream?(stream_id : String) : CommittedStream | Nil #

[View source]
def self.committed_stream_count : Int32 #

[View source]
def self.committed_streams : Array(CommittedStream) #

[View source]
def self.dump(dump_dir = Karma.config.dump_dir, last_lsn = snapshot_lsn) : SnapshotMetadata #

[View source]
def self.eligible?(directive) : Bool #

[View source]
def self.execute(directive, use_persisted_timestamp : Bool = false, &) #

[View source]
def self.fetch_chunk(offset : UInt64 = 0_u64, limit : Int32 = Karma::Backup::SNAPSHOT_CHUNK_DEFAULT_BYTES, dump_dir = Karma.config.dump_dir) #

[View source]
def self.fingerprint(directive) : String #

[View source]
def self.info(dump_dir = Karma.config.dump_dir) : SnapshotMetadata | Nil #

[View source]
def self.install_stream(metadata : SnapshotMetadata, dump_dir = Karma.config.dump_dir, &) : String #

[View source]
def self.metadata_path(dump_dir = Karma.config.dump_dir) : String #

[View source]
def self.metrics #

[View source]
def self.prune(before_unix : Int64, limit : Int32 | Nil = nil) #

[View source]
def self.records : Array(Record) #

[View source]
def self.replace_committed_streams(records : Array(CommittedStream)) : Nil #

[View source]
def self.replace_records(records : Array(Record)) : Nil #

[View source]
def self.reset! : Nil #

[View source]
def self.restore(dump_dir = Karma.config.dump_dir) : Nil #

[View source]
def self.snapshot_path(dump_dir = Karma.config.dump_dir) : String #

[View source]
def self.store(record : Record) : Nil #

[View source]