Technik 2.4 — Microservices & Event-Driven

Monolith vs. Microservices

Ein Monolith ist eine Anwendung — ein Codebase, ein Deploy, eine Datenbank. Microservices spalten dieselbe Anwendung in viele kleine, eigenständige Dienste, die über das Netz kommunizieren.

AspektMonolithMicroservices
DeployAlles auf einmalJeder Service unabhängig
SkalierungVertikal — alles zusammenHorizontal — gezielt pro Service
Tech-StackEine Sprache, ein FrameworkPolyglot — pro Service wählbar
DatenbankGeteiltPro Service eigene
KomplexitätIm CodeIn der Infrastruktur
Team-SkalierungSchwer ab ~30 DevsSkaliert (Conway's Law)
FehlersucheStack-Trace lokalDistributed Tracing nötig

Wann Microservices?

  • Team mit 30+ Entwicklern, die unabhängig arbeiten müssen
  • Teile der App haben sehr unterschiedliche Skalierungs-Bedürfnisse
  • Polyglotte Stacks gefordert (z.B. ML in Python, Web in TypeScript)
  • Häufige, unabhängige Deploys

Wann NICHT?

  • Startup, kleines Team, Pivot wahrscheinlich → Monolith first!
  • Domäne nicht klar geschnitten — Service-Grenzen ändern sich
  • Team hat keine DevOps-/SRE-Kapazität (Microservices = Ops-Aufwand)

Faustregel von Martin Fowler: "Monolith first" — erst wenn der Monolith echte Schmerzen verursacht, splitten.

Zurück zu Technik