Enterprise data teams have accumulated significant tooling complexity around a problem that Postgres has been quietly solving from within. Logical replication, introduced in Postgres 10 and materially improved across every major release since, now covers a range of CDC and data movement patterns that many organisations are still routing through Kafka clusters, Debezium connectors, and dedicated replication platforms. The question worth asking in 2026 is not whether those tools have value, but whether the architectural default of reaching for them first is still justified when the source system is Postgres.
What Logical Replication Actually Gives You
Postgres logical replication works by decoding the write-ahead log into a stream of row-level change events, which subscribers can consume without touching the physical storage format. This separation of logical change from physical representation is what makes it composable as a data engineering primitive rather than just a high-availability mechanism.
Since Postgres 14, publications can filter rows and columns at the source, which means downstream consumers receive only the data they are entitled to see. This is not a minor convenience feature. It directly addresses the data governance overhead that has historically made WAL-based replication difficult to use in multi-tenant or regulated environments.
Postgres 16 extended logical replication to support standby servers as both sources and targets, which removed one of the more significant architectural constraints that previously pushed teams toward external brokers. A replica can now participate in a replication topology without routing all traffic through the primary.
CDC Architecture Patterns That Work Natively
Single-Source Fan-Out
The most common pattern we see evaluated is a single Postgres primary publishing to multiple downstream subscribers: a reporting replica, an analytics warehouse staging schema, and an audit log database. Native logical replication handles this without an intermediary broker, provided the subscriber count stays moderate and the publication is designed with column-level filtering from the start.
The operational cost of this pattern is lower than it appears. Replication slots on the publisher do carry WAL retention risk if a subscriber falls behind, but slot monitoring is straightforward to instrument and the failure mode is predictable. Teams that have managed Kafka consumer lag will find the mental model familiar.
Hub-and-Worker Topologies
A more sophisticated pattern involves a central Postgres instance acting as a logical hub, receiving changes from multiple upstream sources and republishing them to downstream consumers. This architecture suits organisations consolidating data from regional Postgres deployments into a central operational store before forwarding to analytics infrastructure.
The hub pattern does require careful slot management and explicit handling of schema conflicts across sources. It is not a zero-configuration setup. However, the operational surface is contained within Postgres tooling that most engineering teams already know, rather than requiring expertise in a separate platform.
Where Native Capabilities Still Fall Short
Postgres logical replication does not currently support DDL replication. Schema changes on the publisher do not propagate automatically to subscribers, which means any schema migration requires coordinated deployment across the replication topology. For teams running continuous deployment pipelines with frequent schema evolution, this gap is real and the workarounds are manual.
Initial data synchronisation for large tables is handled through a snapshot mechanism that works reliably but offers limited control over chunking and parallelism. Specialist CDC platforms with configurable snapshot strategies will outperform native Postgres here for tables above a certain size threshold, particularly when the source system cannot tolerate the snapshot load.
Filtering and transformation logic in native Postgres replication is limited to row and column selection at the publication level. If your downstream consumers need field-level masking, type coercion, or enrichment before ingestion, that logic has to live in the subscriber schema or in application code. External CDC platforms that support transformation pipelines in the connector layer offer a more integrated solution for those requirements.
Evaluating the Build-vs-Retain Decision
The honest framing for an engineering leader is not whether Postgres can replace Kafka in all cases. It is whether the specific data movement patterns in your architecture actually require the capabilities that Kafka or a dedicated CDC platform provides.
For organisations running Postgres-to-Postgres replication, Postgres-to-analytics-staging pipelines with stable schemas, or consolidation topologies across regional instances, the native tooling is now mature enough to carry production workloads without a broker in the middle. The operational simplification of removing a Kafka cluster from a pipeline that never needed it is measurable in engineering hours and incident surface.
For architectures that involve heterogeneous sources, high-frequency schema evolution, or complex transformation requirements at the connector layer, the case for specialist tooling remains sound. The mistake is applying the same tooling decision uniformly across both scenarios.
Operationalising Logical Replication in Enterprise Environments
Slot management is the operational discipline that determines whether logical replication stays healthy in production. Unmonitored replication slots on a busy primary will accumulate WAL indefinitely if a subscriber disconnects, and the disk pressure can become a production incident. Alerting on slot lag and inactive slots should be treated as a first-class operational requirement, not an afterthought.
Monitoring should cover replication lag in bytes and in time, slot WAL retention size, and subscriber connection state. Most observability platforms that support Postgres metrics will expose these through the pg_replication_slots and pg_stat_replication views without additional instrumentation.
Access control for logical replication requires the REPLICATION privilege and, in most enterprise environments, integration with the organisation's existing credential rotation and audit logging practices. Postgres 16 introduced predefined roles that simplify privilege management for replication-specific access, which reduces the surface area for over-privileged replication users that we have seen cause audit findings in regulated industries.
Where Vector Labs Fits
We design and build production data infrastructure for enterprise teams, including pipeline architectures that reduce tooling complexity without sacrificing operational reliability. In our spare parts optimisation work, we integrated a simulation framework directly with an existing ERP system to deliver measurable reductions in inventory levels while maintaining service-level targets, demonstrating the same principle of fitting the right architecture to the actual problem rather than defaulting to the most complex available tool. If you are evaluating your current pipeline architecture and want a second opinion grounded in production experience, contact us at vector-labs.ai/contacts.
FAQs
No, and that is not the right question to start with. Logical replication is a strong fit for Postgres-to-Postgres topologies, stable-schema analytics pipelines, and consolidation architectures. Kafka remains the better choice where you need high fan-out to heterogeneous consumers, durable event replay across long retention windows, or complex stream processing in the connector layer. The decision should follow from the specific pattern, not from a platform preference.
Replication slot accumulation is the most common cause of production incidents. If a subscriber disconnects and the slot is not dropped or monitored, the publisher will retain WAL indefinitely to allow the subscriber to resume. On a write-heavy primary, this can exhaust disk space within hours. Alerting on slot lag and inactive slots is not optional in a production deployment.
Postgres does not replicate DDL changes through logical replication. Schema migrations on the publisher must be applied manually to subscribers before or after the publisher change, depending on the migration type. For teams with infrequent, planned schema changes this is manageable with deployment tooling. For teams running continuous schema evolution with multiple daily migrations, the coordination overhead is significant and specialist CDC platforms that handle DDL propagation may be worth the additional complexity.
Postgres 14 is the practical minimum for production use, as it introduced row and column filtering at the publication level. Postgres 16 is preferable if your architecture involves standby sources or you want the improved predefined roles for replication privilege management. Running below Postgres 14 means working around the absence of publication-level filtering, which adds complexity that negates much of the simplicity argument for native replication.
Postgres handles initial synchronisation through a table snapshot taken at the point the subscription is created. This works reliably for most table sizes but offers limited control over parallelism and chunking. For very large tables, the snapshot can place meaningful read load on the source and take considerable time to complete. If this is a concern, consider scheduling the initial sync during a low-traffic window or evaluating whether a bulk load from a replica followed by logical replication catch-up is more appropriate for your specific table sizes.

