I'm wondering if you any of you have heard about the Composable Architecture methodology? What are your thoughts on it?
Figure 1. Composable Architecture
Composable architecture refers to a design approach where software systems are developed by combining independent and interchangeable components or services. The key aspects of a composable architecture include:
Modularity - The system is broken down into discrete modules or components that can be developed, deployed and scaled independently.
Loose coupling - The interaction between components is well-defined and not tightly coupled. Components have minimal interdependencies.
Interoperability - Components conform to shared interface definitions and protocols to communicate and interact with each other.
Replaceability - Components can be easily replaced without affecting the overall architecture. The system is not dependent on a specific component implementation.
Automation - assembly and configuration of the system from individual components is automated through definition files/APIs rather than custom coding.
Data separation - Components own and manage their own data storage rather than relying on a centralized database.
Dynamic binding - Components are discovered and combined at runtime to assemble business capabilities on demand in response to changing requirements.