Modularity josedacruz, July 27, 2023 Modularity is the name given, to the process of defining the components, parts, or modules into which a system or software can be divided. Ex: Breaking large monolithic applications into separate and smaller partsAdvantages: Scalability: It is better to have two applications at 40% than one at 80%. Agility: It is easier to respond to changes in the system (attention to coupling). Speed-to-market: Domain modules facilitate business changes in the system. Availability (Fault Tolerance): If one module fails, the others can continue to work. Deployability: More frequent deployments with less risk to the system (attention on coupling) Testability: It is easier and faster to test small modules thoroughly. Maintainability: Easy to add, change, and remove features. (ex: patches)Attention points: The scalability and elasticity can suffer with increased communication between the services. With an increase in the number of modules, it is better to consider asynchronous communication. Asynchronous communication favors fault tolerance, scalability, and elasticity. Related architecture architectureasynchronousmicroservicesmodularityservicessynchronous