This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
backendcritical PriorityID: postgres-17-parallel-apply-conflict-guardrail

PostgreSQL 17 Parallel Logical Replication Apply Boundary & Conflict Ordering Guardrail

Enforces deterministic conflict handling, strict monotonic commit order, and origin boundary isolation for PostgreSQL 17 parallel logical replication apply workers. Prevents silent data divergence, circular replication loops, and transaction serialization failures across multi-active topologies.

Prohibited Anti-Pattern: Unbounded Parallel Apply with Non-Deterministic Conflict Ignorance and Missing Origin Filters

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: PostgreSQL 17 Parallel Logical Replication Apply Boundary & Conflict Ordering Guardrail - Enforces deterministic conflict handling, strict monotonic commit order, and origin boundary isolation for PostgreSQL 17 parallel logical replication apply workers. Prevents silent data divergence, circular replication loops, and transaction serialization failures across multi-active topologies.
globs: src/db/**/*.ts, migrations/**/*.sql, src/replication/**/*.ts
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/postgres-17-parallel-apply-conflict-guardrail"
---

# PostgreSQL 17 Parallel Logical Replication Apply Boundary & Conflict Ordering Guardrail

> **Severity**: CRITICAL | **Category**: backend
> **Anti-Pattern Warning**: Unbounded Parallel Apply with Non-Deterministic Conflict Ignorance and Missing Origin Filters

## System Constraints
You are a Principal Database Architect enforcing PostgreSQL 17 parallel logical replication guardrails. You mandate strict commit ordering, origin tracking to prevent infinite replication loops, deterministic Last-Write-Wins (LWW) or custom collision hooks, and explicit slot failover control.

## Strict Guidelines
- Engineers MUST ALWAYS configure PostgreSQL 17 subscriptions with explicit 'origin = any' or 'origin = none' and use 'pg_replication_origin' markers to eliminate cyclic re-replication.
- Engineers MUST NOT configure 'streaming = parallel' on subscriptions without a deterministic primary-key based sharding key or conflict handling strategy for 'insert_exists', 'update_missing', and 'delete_missing'.
- Services MUST monitor 'pg_stat_subscription_stats' for monotonic increment of 'confl_insert_exists', 'confl_update_missing', and 'confl_delete_missing', immediately halting or alerting on anomalies.
- Engineers MUST enforce monotonic microsecond timestamps (or distributed Hybrid Logical Clocks) on replicating tables to ensure deterministic divergence resolution in parallel workers.
- Tables participating in logical replication MUST define an explicit REPLICA IDENTITY FULL or REPLICA IDENTITY USING INDEX with immutable, non-null deterministic columns.

## Bad vs Good Implementations
### Configuring PostgreSQL 17 Parallel Apply Subscription with Deterministic Conflict Traps

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Enabling 'streaming = parallel' in PG 17 without setting 'origin = none' (or managing origin boundaries) causes replication loops in multi-active setups. It also lacks slot failover replication coordination and omits deterministic conflict logging and transaction-order preservation.
```typescript
import { Pool } from 'pg';

export async function setupSubscription(pool: Pool) {
  // DANGEROUS: parallel streaming enabled without conflict awareness,
  // without origin isolation, and missing failover flags for PG 17
  await pool.query(`
    CREATE SUBSCRIPTION sub_customer_sync
    CONNECTION 'host=provider.internal dbname=app user=rep_user password=secret'
    PUBLICATION pub_customers
    WITH (
      streaming = parallel,
      copy_data = true
    );
  `);
}
```

#### Production Standard (Correct)
> **Standard**: Explicitly enforces PG 17 parameters: 'apply_parallel_workers', 'origin = none' to prevent bi-directional loops, 'failover = true' to support physical standby failover synchronization, and REPLICA IDENTITY FULL with monotonic collision resolution columns.
```typescript
import { Pool } from 'pg';

export async function setupSubscription(pool: Pool) {
  const client = await pool.connect();
  try {
    await client.query('BEGIN');

    // 1. Enforce replica identity and monotonic versioning on local target
    await client.query(`
      ALTER TABLE customers REPLICA IDENTITY FULL;
      ALTER TABLE customers 
        ADD COLUMN IF NOT EXISTS hlc_timestamp BIGINT NOT NULL DEFAULT 0,
        ADD COLUMN IF NOT EXISTS origin_node_id VARCHAR(64) NOT NULL DEFAULT 'local';
    `);

    // 2. Configure PG 17 parallel apply with origin filtering and slot failover sync
    await client.query(`
      CREATE SUBSCRIPTION sub_customer_sync
      CONNECTION 'host=provider.internal dbname=app user=rep_user password=secret'
      PUBLICATION pub_customers
      WITH (
        streaming = parallel,
        apply_parallel_workers = 4,
        origin = none,
        failover = true,
        copy_data = true,
        password_required = true
      );
    `);

    await client.query('COMMIT');
  } catch (error) {
    await client.query('ROLLBACK');
    throw error;
  } finally {
    client.release();
  }
}
```

Architectural Specification & Invariant Rationale

Architectural Invariant Design: PostgreSQL 17 Parallel Logical Replication Apply Boundary & Conflict Ordering Guardrail

PostgreSQL 17 Parallel Logical Replication Apply Boundary & Conflict Ordering Guardrail defines an industrial-grade behavioral standard for backend engineering. Enforces deterministic conflict handling, strict monotonic commit order, and origin boundary isolation for PostgreSQL 17 parallel logical replication apply workers. Prevents silent data divergence, circular replication loops, and transaction serialization failures across multi-active topologies. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Unbounded Parallel Apply with Non-Deterministic Conflict Ignorance and Missing Origin Filters Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftUnbounded Parallel Apply with Non-Deterministic Conflict Ignorance and Missing Origin FiltersCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS configure PostgreSQL 17 subscriptions with explicit 'origin = any' or 'origin = none' and use 'pg_replication_origin' markers to eliminate cyclic re-replication.

Engineers MUST ALWAYS configure PostgreSQL 17 subscriptions with explicit 'origin = any' or 'origin = none' and use 'pg_replication_origin' markers to eliminate cyclic re-replication.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT configure 'streaming = parallel' on subscriptions without a deterministic primary-key based sharding key or conflict handling strategy for 'insert_exists', 'update_missing', and 'delete_missing'.

Engineers MUST NOT configure 'streaming = parallel' on subscriptions without a deterministic primary-key based sharding key or conflict handling strategy for 'insert_exists', 'update_missing', and 'delete_missing'.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Services MUST monitor 'pg_stat_subscription_stats' for monotonic increment of 'confl_insert_exists', 'confl_update_missing', and 'confl_delete_missing', immediately halting or alerting on anomalies.

Services MUST monitor 'pg_stat_subscription_stats' for monotonic increment of 'confl_insert_exists', 'confl_update_missing', and 'confl_delete_missing', immediately halting or alerting on anomalies.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Engineers MUST enforce monotonic microsecond timestamps (or distributed Hybrid Logical Clocks) on replicating tables to ensure deterministic divergence resolution in parallel workers.

Engineers MUST enforce monotonic microsecond timestamps (or distributed Hybrid Logical Clocks) on replicating tables to ensure deterministic divergence resolution in parallel workers.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Tables participating in logical replication MUST define an explicit REPLICA IDENTITY FULL or REPLICA IDENTITY USING INDEX with immutable, non-null deterministic columns.

Tables participating in logical replication MUST define an explicit REPLICA IDENTITY FULL or REPLICA IDENTITY USING INDEX with immutable, non-null deterministic columns.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is PostgreSQL 17 Parallel Logical Replication Apply Boundary & Conflict Ordering Guardrail critical for AI coding assistants?

Enforces deterministic conflict handling, strict monotonic commit order, and origin boundary isolation for PostgreSQL 17 parallel logical replication apply workers. Prevents silent data divergence, circular replication loops, and transaction serialization failures across multi-active topologies. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Unbounded Parallel Apply with Non-Deterministic Conflict Ignorance and Missing Origin Filters) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

PostgreSQL