Enable lossless upgrade of Simpl-Open components
Description
Simpl-Open shall ensure that its components can be upgraded without requiring full reinstallation and without any loss of data or configuration. This includes database continuity (Kafka, Redis, Neo4J, PostgreSQL), preservation of system settings (e.g., TLS gateway, certificates, schemas, identity attributes, Keycloak), and backward compatibility via database versioning solutions.
This contributes to the overall Maintainability of the system and will be supported by automated validation and non-regression testing during upgrade procedures.
SMART Breakdown
- Specific:
The system shall support upgrading any deployed Simpl-Open component without requiring full reinstallation, while ensuring full preservation of runtime data and configuration (including Kafka, Redis, Neo4J, PostgreSQL, certificates, schemas, identity attributes, etc.). - Measurable:
Upgrade processes shall retain 100% of user and system data, and all configuration settings, in at least 95% of tested upgrade scenarios. Functional tests and automated validation pipelines shall verify integrity before and after each upgrade. - Achievable:
This capability will be implemented through proven version management solutions (e.g., Flyway, Liquibase), infrastructure-aware deployment practices, and backup/restore mechanisms embedded into the upgrade process. - Realistic:
Zero-loss upgrades are a common operational expectation in enterprise-grade distributed systems and are fully supported by modern container orchestration, CI/CD pipelines, and declarative configuration tools. - Timely:
Upgrade capabilities shall be incorporated into the system roadmap and continuously validated through upgrade simulations and automated regression testing.
Detailed Non-Functional Requirement | Issue ID: SIMPL-13894 | Status: Proposed |