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,