-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: 8.3.0-rc0
-
Component/s: None
-
None
-
Catalog and Routing
-
CAR Team 2026-01-19
-
🟩 Routing and Topology
-
None
-
None
-
None
-
None
-
None
-
None
The aim of this ticket is to prototype separating feature-specific parts of the upgrade/downgrade process separately from the core setFCV implementation (essentially, a plugin system for setFCV):
- For each feature, we can define a C++ class that implements one or more functions (e.g. upgradeMetadata, downgradeMetadata, etc.).
- Those C++ classes can register themselves as steps that should be called as part of the FCV upgrade/downgrade done by setFCV.
- From setFCV, we should be able to each registered step from the existing placeholders (_upgradeServerMetadata, _prepareToUpgradeActions, etc.).
- It should play well with the code owners system (adding a new step should not be forced to be reviewed by a Server team other than 10gen/server-fcv).
We should find if there is some system that is built in a similar way that we can take as a reference.
Ideally, once the API is well defined we can take turn the proof of concept into commitable code.