Définition
Monolith et Modularization
Dans son article, Modular Monolith: A Primer, Kamil Grzybek nous donnes les définitions suivantes.
Monolith is nothing more than a system that has exactly one deployment unit. No less no more.
Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
Puis dans le second article Modular Monolith: Architectural Drivers, il nous rappelle les caractéristiques d’une architecture Modular Monolithique :
- est un système qui a exactement une unité de déploiement
- la modularisation signifie que le module :
- doit être indépendant, autonome
- possède tout ce qui est nécessaire pour fournir la fonctionnalité souhaitée (séparation par domaine d’activité)
- est encapsulé et possède une interface/un contrat bien défini(e)
Ainsi Simon Brown définit l’architecture Modular Monolithique
A modular monolith is a system where all of the code powers a single application and there are strictly enforced boundaries between different domains.