Electric.Replication.PublicationManager.Configurator (electric v1.2.4)

View Source

Configures and maintains a PostgreSQL publication on behalf of Electric.Replication.PublicationManager.RelationTracker.

It receives requests to update the publication such that a given set of relations are published with REPLICA IDENTITY FULL, and performs the necessary SQL commands to ensure that the publication matches the requested set of relations.

Each relation is updated individually to avoid blocking all other operations on the publication due to locks held on individual tables.

Summary

Functions

Returns a specification to start this module under a supervisor.

Types

state()

@type state() :: %Electric.Replication.PublicationManager.Configurator{
  can_alter_publication?: boolean(),
  db_pool: term(),
  manual_table_publishing?: boolean(),
  publication_name: String.t(),
  scheduled_filters:
    Electric.Replication.PublicationManager.RelationTracker.relation_filters()
    | nil,
  scheduled_update_ref: nil | reference(),
  stack_id: Electric.stack_id(),
  update_debounce_timeout: timeout()
}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

configure_publication(opts, filters)

name(stack_id)

start_link(opts)