Coexistence Architecture
An architectural approach for running legacy systems alongside new components and enabling incremental modernization.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeArchitectural
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Inconsistent data states across systems
- Hidden dependencies complicate extraction
- Operational costs increase due to parallel operation
- Use automated testing and canary releases
- Establish clear integration contracts and versioning
- Ensure observability across transitional boundaries
I/O & resources
- Inventory of interfaces and dependencies
- Operational requirements and SLAs
- Data model and replication strategy
- Defined integration layer and transitional architecture
- Reduced monolith functionality
- Metrics for consistency, availability and cost
Description
Coexistence Architecture defines strategies for running legacy systems alongside new cloud‑native components. It emphasizes interface layers, decoupling, data consistency and phased migration so operations and development can coexist. The goal is to reduce risk, enable continuous delivery and achieve incremental modernization without full replacement.
✔Benefits
- Reduces migration risk through incremental changes
- Enables parallel operation and continuous delivery
- Preserves investments in existing systems
✖Limitations
- Requires additional integration and operational effort
- May introduce short‑term complexity and redundancy
- Not all components are suitable for phased separation
Trade-offs
Metrics
- Mean Time to Migrate (MTTM)
Average time to move a feature from the legacy system into the new architecture.
- Data inconsistency incidents
Count and severity of incidents involving inconsistent data states.
- Operational cost of parallel systems
Monthly cost for running legacy and new components in parallel.
Examples & implementations
Strangler pattern in legacy webshop
An online shop incrementally extracts checkout functionality into new services while the old shop remains running.
Hybrid cloud for core ERP
Critical ERP modules remain on‑premise while analytics run in the cloud with synchronized interfaces.
Event bridge for data coupling
Event‑based replication provides near‑real‑time consistency between the legacy system and new microservices.
Implementation steps
Analyze: create interface inventory and dependency map
Design: define integration layer and migration paths
Pilot: extract a small domain and implement monitoring
Iterate: capture lessons learned and expand incrementally
⚠️ Technical debt & bottlenecks
Technical debt
- Temporary adapter layers are not removed
- Short‑term data copies persist permanently
- Unmanaged interface versions lead to fragmentation
Known bottlenecks
Misuse examples
- Parallel operation is prolonged indefinitely and increases costs
- Data is incrementally duplicated without conflict resolution
- Legacy system remains unchanged while new components act only as a façade
Typical traps
- Underestimating hidden dependencies
- Missing automation for tests and deployment
- Unclear responsibilities between teams
Required skills
Architectural drivers
Constraints
- • Existing proprietary interfaces may limit migration
- • Operational SLAs must be maintained during coexistence
- • Compliance and data protection requirements constrain data flows