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

Définition

A modular monolith is a system where all of the code powers a single application and there are strictly enforced boundaries between different domains.