3. Breaking down the monorepo
Date: 2020-11-17
Status
Accepted
Context
Currently (November 2020) having all the Sirius supervision code in one mono-repository means that any changes to a component of Sirius require all of the components to be rebuilt and retested
Decision
The Sirius Repository will be split into component parts. These separate repositories will speed up local and CI builds by only rebuilding the changed components and running tests appropriate to the component that has changed
We will still need to run full integration tests as part of the path to live, and this will need to be handled in a way that minimises disruption to the development process.
The changes will also allow us to move forward with breaking up Sirius into smaller microservices, each focused on a particular domain.
Consequences
- Makes the Sirius codebase more managable.
- Allows us to release components independently.
- Moving to external repos hides implementation details, so forces us to use contracts more actively.
- Moving to external repos hides implementatiton details, so requires the team to keep sub repos maintained.
This page was last reviewed on 10 December 2024.
It needs to be reviewed again on 10 June 2025
by the page owner #opg-sirius-develop
.
This page was set to be reviewed before 10 June 2025
by the page owner #opg-sirius-develop.
This might mean the content is out of date.