En monolith paketerar all funktionalitet i en enda distribuerbar enhet; mikrotjänster delar den funktionaliteten i många oberoende distribuerbar tjänster. Huvudskillnaden är distributionsenheten och gränserna mellan moduler.
En monolith paketerar all funktionalitet i en enda distribuerbar enhet; mikrotjänster delar den funktionaliteten i många oberoende distribuerbar tjänster. Huvudskillnaden är distributionsenheten och gränserna mellan moduler.
| Aspekt | Monolith | Mikrotjänster |
|---|
| Distribution | En enhet | Många oberoende enheter |
| Databas | Oftast en gemensam DB | En DB per tjänst |
| Skalning | Skala hela appen | Skala tjänster individuellt |
| Kommunikation | In-process-anrop | Nätverk (HTTP/gRPC/händelser) |
| Teamkoppling | Hög | Låg (ägarskap per tjänst) |
| Feltryckradie | Hela appen | Ofta isolerad till en tjänst |
| Operativ komplexitet | Låg | Hög |
MONOLITH best when:
✓ small team / early-stage product
✓ domain not yet well understood
✓ simplicity and fast iteration matter most
MICROSERVICES best when:
✓ large org with many teams
✓ parts have very different scaling needs
✓ you need independent deploy cadence
En dåligt modulariserad monolith förbättras inte magiskt när den delas upp — du får bara en distribuerad röra. Åtgärda gränserna först.
Att välja fel stil är dyrt: en för tidig uppdelning lägger till latens, driftskostnader och felsökningssvårigheter för ett litet team.
De flesta framgångsrika system börjar som en väl strukturerad monolith och extraherar tjänster endast när teamstorlek eller skalningskrav tydligt motiverar det.