Safe Upgrades for PostgreSQL Extensions: Managing Backward Compatibility
October 20–23
As PostgreSQL deployments increasingly rely on extensions for advanced capabilities, extension maintainers face the critical challenge of shipping new features without disrupting production systems. In this talk, we present a systematic framework for categorizing PostgreSQL extension changes—using Citus and other real-world examples—based on their impact on backward compatibility and user-facing behavior. We introduce a taxonomy of extension changes, ranging from non-breaking enhancements to explicitly breaking changes and subtle C‑ABI incompatibilities. Each category is mapped to appropriate versioning decisions, testing practices, and upgrade workflows. By aligning release policies with the severity of changes, an extension team can minimize risk to applications when rolling out new versions.
We share practical safeguards proven in real-world production environments, including regression test suites that cover upgrades from all supported versions, mixed-version scenarios involving replicas, pre-upgrade validation scripts, and staged rollout techniques that surface issues early. Through examples, we illustrate these principles in action and highlight lessons learned. Attendees will gain actionable guidelines on designing extension upgrade processes that balance rapid innovation with the stability that users demand – all grounded in the collective experience of the PostgreSQL extension ecosystem.