16 released 14 September 2023, latest 16.15.
PostgreSQL 16 is currently supported. It reaches end of life on 9 November 2028.
What changed
PostgreSQL 16 expanded performance, observability, SQL/JSON, and replication capabilities relative to PostgreSQL 15. It added pg_stat_io, which reports I/O activity by backend type, database object, and I/O context, making it easier to distinguish cache, read, write, and writeback behavior during investigation. Query execution gained parallel plans for FULL and RIGHT joins and other planner and executor improvements. Logical replication can use a physical standby as a publisher, and subscribers can apply parts of large transactions in parallel. The release also added SQL/JSON constructors and identity functions, enhanced compression choices in several client and backup utilities, and included numerous improvements to vacuuming, indexing, partitioning, and administration.
What staying costs
PostgreSQL 16 remains supported, so remaining on it is not inherently an immediate security or vendor-maintenance risk if the cluster is kept on the current PostgreSQL 16 minor release. The practical trade-off is that the team does not receive the performance, operational, SQL, replication, and tooling improvements introduced by newer major versions. That can matter most for I/O-bound workloads, high-volume logical replication, large upgrades, and environments where better diagnostic visibility reduces incident time. Delaying several major-version transitions can also make the eventual migration broader: more application behavior, extensions, drivers, backup tooling, query plans, and operational procedures must be validated at once rather than in smaller steps.
What to do
Keep every PostgreSQL 16 instance on the latest available minor release and verify that extensions, client libraries, backup tools, and monitoring agents are compatible with it. Inventory version-specific features in use, especially logical replication topology, collations, extensions, generated objects, partitioning, and SQL that depends on planner behavior. Build a representative test environment on the intended newer major version, restore or clone production-like data, and run application regression tests, workload benchmarks, backup-and-restore tests, and plan comparisons for critical queries. Choose an upgrade method based on downtime requirements: pg_upgrade is usually appropriate for a short maintenance window, while logical replication can support a staged cutover but does not automatically replicate all schema changes, sequences, or operational configuration. Rehearse the selected path, document rollback criteria, and schedule the production move before a forced upgrade becomes necessary.
We can tell you what moving off PostgreSQL 16 involves.
What it takes to move off PostgreSQL 16 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
