Monolithische architectuur

Een monolithische architectuur is het traditionele uniforme model voor het ontwerp van een softwareprogramma. Monolithisch, in deze context, betekent samengesteld uit één stuk. Volgens het Cambridge woordenboek betekent het bijvoeglijk naamwoord monolithisch ook zowel te groot als niet in staat om te worden veranderd.

Monolithische software is ontworpen om op zichzelf te staan; componenten van het programma zijn onderling verbonden en onderling afhankelijk in plaats van losjes gekoppeld zoals het geval is bij modulaire softwareprogramma's. In een strak gekoppelde architectuur moet elk onderdeel en de bijbehorende componenten aanwezig zijn om code te kunnen uitvoeren of compileren.

Verder moet, als een programmaonderdeel moet worden bijgewerkt, de hele applicatie worden herschreven, terwijl in een modulaire applicatie elke afzonderlijke module (zoals een microservice) kan worden gewijzigd zonder dat dit gevolgen heeft voor andere delen van het programma. Modulaire architecturen verkleinen het risico dat een verandering binnen één element leidt tot onverwachte veranderingen binnen andere elementen, omdat modules relatief onafhankelijk zijn. Modulaire programma's lenen zich ook beter voor iteratieve processen dan monolithische programma's.

Echter, er zijn ook voordelen aan monolithische architecturen. Monolithische programma's hebben doorgaans een betere doorvoer dan modulaire benaderingen, zoals de microservice-architectuur (MSA) en ze kunnen eenvoudiger te testen en te debuggen zijn, omdat er met minder elementen minder variabelen in het spel komen.