Electric.Postgres.ReplicationClient.Collector (electric v1.2.4)
View SourceConversion of incoming Postgres logical replication messages to internal change representation.
Summary
Functions
Handle incoming logical replication message by either building up a transaction or returning a complete built up transaction.
Types
@type t() :: %Electric.Postgres.ReplicationClient.Collector{ max_tx_size: nil | non_neg_integer(), relations: %{ optional(Electric.Postgres.LogicalReplication.Messages.relation_id()) => Electric.Postgres.LogicalReplication.Messages.Relation.t() }, transaction: nil | Electric.Replication.Changes.Transaction.t(), tx_op_index: nil | non_neg_integer(), tx_size: non_neg_integer() }
@type txn_meta() :: %{byte_size: non_neg_integer()}
Functions
@spec handle_message(Electric.Postgres.LogicalReplication.Messages.message(), t()) :: t() | {Electric.Replication.Changes.Transaction.t(), txn_meta(), t()} | {Electric.Replication.Changes.Relation.t(), t()} | {:error, {:replica_not_full | :exceeded_max_tx_size, String.t()}, t()}
Handle incoming logical replication message by either building up a transaction or returning a complete built up transaction.