Prague PostgreSQL Developer Day 2026

Switching Me Softly: Zero-downtime Major PostrgreSQL Upgrades at Fresha
28.01.2026 , 155
Jazyk: English

Upgrading PostgreSQL in production is rarely about tools, it’s about timing, trust, and everything that can break in between.
At Fresha we had quute a few of Postgres 12 databases, streaming changes through Debezium into Kafka, serving live traffic around the clock. With end-of-life approaching, “just run pg_upgrade” wasn’t an option.

We built a blue-green upgrade process based on logical replication, sequence offsets, connector handover, and PgBouncer choreography: a way to move clusters forward without downtime or broken streams.
This talk shares how we made it repeatable: YAML configs, dry-run rehearsals, reversible scripts, and a few hard lessons learned along the way.

When the switch finally happened, no one noticed. That’s how you know it worked.


This talk expands on Fresha’s Switching Me Softly framework: a production-tested zero-downtime upgrade path from PostgreSQL 12 → 17.

It covers:

  • Logical replication with WAL origin alignment

  • Coordinating Debezium CDC and outbox connectors

  • PgBouncer two-phase switchover (read-only → write)

  • YAML-driven orchestration and dry-run safety modes

We upgraded dozens of databases, including multi-terabyte clusters, without a second of downtime.
The session focuses on real engineering trade-offs what worked, what didn’t, and how to make major PostgreSQL upgrades safe, reversible, and boring.

Anton Borisov is a Principal Data Architect who builds real-time data platforms at the edge of what's possible with Flink, Kafka, and emerging open-source technologies. At Fresha, he has led mission-critical projects ranging from zero-downtime Postgres migrations to streaming architectures powering real-time customer analytics. A recognized voice in the data streaming community, Anton writes deep technical explorations that influence how engineers approach Flink, Iceberg, Paimon and StarRocks, bridging research,