Proof of concept of a plugin system for FCV upgrade/downgrade steps

XMLWordPrintableJSON

    • 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.

            Assignee:
            Marco Bizzarri
            Reporter:
            Joan Bruguera Micó
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: