Designing Modular Systems: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=Internal= * System Design * Infrastructure_as_Code_Concepts#Build_Small.2C_Simple.2C_Loosely_Coupled_Pieces_that_Can_Be_Changed_...")
 
Line 2: Line 2:
* [[System_Design#Designing_Modular_Systems|System Design]]
* [[System_Design#Designing_Modular_Systems|System Design]]
* [[Infrastructure_as_Code_Concepts#Build_Small.2C_Simple.2C_Loosely_Coupled_Pieces_that_Can_Be_Changed_Independently|Infrastructure as Code Concepts]]
* [[Infrastructure_as_Code_Concepts#Build_Small.2C_Simple.2C_Loosely_Coupled_Pieces_that_Can_Be_Changed_Independently|Infrastructure as Code Concepts]]
=Overview=
The larger and tightly coupled a system is, the harder it is to change, and the easier it is to break. The alternative is to compose a system from small, simple pieces. Each piece has clearly defined interfaces and it is easy to understand. The component can be tested and deployed in isolation. [[Microservices#Overview|Microservices]] fall into this category.
The systems should be designed for modularity. The goal of modularity is to make it easier and safer to make changes to the system. The hope is that, for a well-designed modular system, you can make a change to a component without needing to change other parts of the system. A well-designed modular system performs well on these [[Operations#Operational_Performance_Metrics|operational performance metrics]].

Revision as of 04:53, 3 January 2022

Internal

Overview

The larger and tightly coupled a system is, the harder it is to change, and the easier it is to break. The alternative is to compose a system from small, simple pieces. Each piece has clearly defined interfaces and it is easy to understand. The component can be tested and deployed in isolation. Microservices fall into this category.

The systems should be designed for modularity. The goal of modularity is to make it easier and safer to make changes to the system. The hope is that, for a well-designed modular system, you can make a change to a component without needing to change other parts of the system. A well-designed modular system performs well on these operational performance metrics.