Skip to content

[DPE-7882] fix(logical-replication): track replication chains and guard the publisher (3/5) - #268

Draft
marceloneppel wants to merge 1 commit into
lr-2-subscriber-validationfrom
lr-3-circular-chains
Draft

[DPE-7882] fix(logical-replication): track replication chains and guard the publisher (3/5)#268
marceloneppel wants to merge 1 commit into
lr-2-subscriber-validationfrom
lr-3-circular-chains

Conversation

@marceloneppel

Copy link
Copy Markdown
Member

Issue

Third PR of the logical replication migration series (after #267): the publisher-side guard for cyclic replication, part of fixing canonical/postgresql-operator#1085.

Solution

  • Publications now carry replication-chains metadata recording the app path a table's data took (built from our own subscription's chains, extended when republishing).
  • The offer side refuses to publish a table it is subscribed to from the requester: direct A <-> B loops on the same table and multi-hop A -> B -> C -> A loops both surface as publisher errors on the relation, which the subscriber side (next PR) turns into a blocked status.
  • The create-publication branch moves into _create_new_publication to keep _process_offer under the complexity budget.

Checklist

  • I have added or updated any relevant documentation.
  • I have cleaned any remaining cloud resources from my accounts.

…rd the publisher (3/5)

Publications now carry replication-chains metadata recording the app
path a table's data took, and the offer side refuses to publish a
table it is subscribed to from the requester: direct A <-> B loops on
the same table and multi-hop A -> B -> C -> A loops both surface as
publisher errors the subscriber can act on.

The create-publication branch moves into _create_new_publication to
keep _process_offer under the complexity budget.
@marceloneppel
marceloneppel force-pushed the lr-2-subscriber-validation branch from a97bfa3 to 9c694bd Compare September 4, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant