DDL replication DDL overview Replicated DDL Differences from PostgreSQL Executing DDL on PGD systems DDL and mixed PostgreSQL versions DDL replication options DDL locking details The global DDL lock The global DML lock Managing DDL with PGD replication Minimizing the impact of DDL Handling DDL with down nodes Statement-specific DDL replication concerns DDL command handling matrix Command matrix Command notes DDL and role manipulation statements Workarounds for DDL restrictions Adding a CONSTRAINT PGD functions that behave like DDL Decoding worker Enabling Disabling Using with transaction streaming CDC Failover support Background CDC Failover support How CDC Failover works At-least-once delivery guarantees Exactly-once delivery Enabling CDC Failover support CDC Failover support with Postgres 17+ Obtaining Initial Consistent Snapshot Failing Over to Newly Joined Nodes Tracking Per-Origin Progress Limitations Parallel Apply What is Parallel Apply? Configuring Parallel Apply When to use Parallel Apply Monitoring Parallel Apply Disabling Parallel Apply Deadlock mitigation Parallel Apply support Replication sets Using replication sets Behavior of partitioned tables Behavior with foreign keys Replication set membership Listing replication sets DDL replication filtering Selective replication example Cluster configuration Application requirements Creating tables Viewing groups and replication sets Adding tables to replication sets Testing selective replication Security and roles Roles Role management Role rule - No un-replicated roles Roles for new nodes Connections and roles PGD predefined roles bdr_superuser Privileges bdr_read_all_stats Privileges bdr_monitor Privileges bdr_application Privileges bdr_read_all_conflicts Privileges Roles and replication DDL and DML replication and users Differing table ownership Replication and row-level security bdr_superuser role and replication Privilege restrictions Foreign key privileges Access control Catalog tables PGD functions and operators Granting privileges on catalog objects Triggers Sequences PGD global sequences Automatic sequence conversion SnowflakeId sequences Timeshard sequences Unlogged sequences and PGD Globally allocated range sequences Converting a local sequence to a galloc sequence UUIDs, KSUUIDs, and other approaches KSUUID v2 functions UUIDs KSUUIDs Step and offset sequences Composite keys See also Stream triggers Trigger execution during apply Missing-column conflict resolution Data loss and divergence risk Terminology of row-types Conflict triggers Transform triggers Row contents Execution order Stream triggers examples Transaction streaming PGD enhancements Caveats Configuration Node configuration using bdr.default_streaming_mode Group configuration using bdr.alter_node_group_option() Configuration setting effects Monitoring Explicit two-phase commit (2PC) Use