Klassieke software kan gezien worden als een groot cruiseschip. Een complex en enorme machine, met een hoop verschillende functies. Dit klinkt misschien ideaal, een groot project dat overal verantwoordelijk voor is. De nadelen hiervan zijn echter dat het een grote taak is om van grond af aan op te bouwen, waarbij het hele schip kan zinken als een klein cruciaal deel breekt. Het is ook erg lastig om een specifiek onderdeel te verbeteren, vooral als de rest het nog wel goed doet.
Microservices zijn eerder een grote vloot aan kleinere, gespecialiseerde bootjes. Een gaat over de financien, de ander over klanten, etc. Dit zorgt ervoor dat het gemakkelijk is om een enkele boot te vervangen, mocht deze kapot zijn of verbeterd moeten worden. Deze kleine bootjes kunnen geschaard worden over meerdere projecten, en daardoor over-engineered opgezet worden, zodat elke klant profijt heeft van de extra kracht.