Monolithische architectuur houdt in dat alle functies van de applicatie zijn samengevoegd in één code die wordt ontwikkeld en gedeployed.
Service-georiënteerde architectuur (SOA) en met name microservices is een benadering waarbij de applicatie bestaat uit een set modules die met elkaar communiceren via duidelijke interfaces (meestal netwerkintefaces).
Wanneer is een monoliet voordelig:
Wanneer is SOA voordelig:
Voorbeeld van vergelijking: Monoliet:
public class Application { public static void main(String[] args){ UserService userService = new UserService(); OrderService orderService = new OrderService(); // Logica voor bestellingen, gebruikers — alles in één applicatie } }
SOA — interactie via API:
GET /user/42 # verzoek naar de gebruikersservice GET /order/532 # verzoek naar de bestellingsservice
Kernkenmerken:
Deelt SOA de database tussen de services?
Gewoonlijk delen services gegevens voor zwakke koppeling. Gemeenschappelijke databases zijn toegestaan in de migratiefasen, maar idealiter heeft elke service een aparte database.
Is een monoliet altijd slechter qua prestaties?
Nee, een monoliet kan efficiënter zijn bij kleine volumes, omdat er geen onnodige netwerkoproepen en geheugenverdeling zijn.
Kun je een monoliet 'in één keer' omzetten naar microservices?
Nee, de overgang gebeurt meestal gefaseerd, te beginnen met het definiëren van contextgrenzen en deze om te zetten in services.