Electric.Postgres.ReplicationClient.Collector (electric v1.2.4)

View Source

Conversion 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

t()

@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()
}

txn_meta()

@type txn_meta() :: %{byte_size: non_neg_integer()}

Functions

handle_message(msg, state)

@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.

is_collecting(collector)

(macro)