Description
Support n-1 version compatibility
Previously Support zero downtime upgrades
, renaming to be more accurate.
This was a feature request from a user. Thanks for the feedback, @trevorr !
Problem
"There is no official support for zero-downtime upgrades. Downtime causes us contractual headaches around SLAs and personal headaches around performing upgrades during the middle of the night on a weekend. I've done this successfully at my own risk, but it will make me increasingly nervous. This feature seems doable, even in the face of schema upgrades, with some constraints (both for FA and its users) on consecutive versions."
Note that the only current downtime if you run multiple nodes is when there are database upgrades and the database after upgrade is not compatible with version N-1. This downtime is typically seconds in duration, but does depend on the size of your data.
Solution
Ensure that version N and version N-1 of the application work with version N and version N-1 of the database, so that you can step from N-1 -> N with both nodes and the database with zero degradation.
Alternatives/workarounds
Automate the upgrade, do it in the middle of the night or other low traffic time.
Remain on an older version.
Provide a 'read only' degraded mode when you are upgrading or figure out some other way for the system to operate in a degraded, but still available mode during a database upgrade. Another option would be for a clear blue/green strategy set of instructions, which would probably impose some version to version limits on database changes.
Additional context
Modified Apr 13 2022 to be more precise. There are many approaches to minimizing downtime of upgrades.
Docs around upgrading currently: https://fusionauth.io/docs/v1/tech/admin-guide/upgrade#downtime
Community guidelines
All issues filed in this repository must abide by the FusionAuth community guidelines.
How to vote
Please give us a thumbs up or thumbs down as a reaction to help us prioritize this feature. Feel free to comment if you have a particular need or comment on how this feature should work.