Module 5 - Architecture Patterns

Monolith vs Microservices

Two architectural styles. Neither is inherently better-choose based on your needs.

1The Restaurant Analogy

Simple Analogy
Monolith: One big restaurant where kitchen, bar, and dining all share space. Easy to coordinate, but if the kitchen catches fire, everything shuts down.

Microservices: Food court with separate vendors. Kitchen fire at one stall? Others keep serving. But coordinating a meal across stalls is harder.

2Comparison

AspectMonolithMicroservices
DeploymentAll-or-nothingIndependent per service
ScalingScale entire appScale individual services
Tech StackSingle stackPolyglot possible
ComplexityLower initiallyDistributed systems
Team SizeSmall teamsLarge, autonomous teams

3Monolith

A monolith is a single deployable unit containing all application code. Changes to any part require redeploying the whole application.

Pros

  • ✓Simple to develop initially
  • ✓Easy local development
  • ✓Single deployment
  • ✓No network calls between modules

Cons

  • ✗Scaling is all-or-nothing
  • ✗Large codebase becomes unwieldy
  • ✗Long build/deploy times
  • ✗Technology lock-in

4Microservices

Microservices break an application into small, independently deployable services, each owning its own data and business logic.

Pros

  • ✓Independent deployment
  • ✓Scale services individually
  • ✓Team autonomy
  • ✓Technology flexibility

Cons

  • ✗Distributed system complexity
  • ✗Network latency
  • ✗Data consistency challenges
  • ✗Operational overhead

5When to Choose

Choose Monolith

  • • Early-stage startup
  • • Small team (< 10 devs)
  • • Simple domain
  • • Rapid prototyping
  • • Unclear service boundaries

Choose Microservices

  • • Large organization
  • • Clear domain boundaries
  • • Independent scaling needs
  • • Multiple teams
  • • High availability requirements

6Key Takeaways

1Monolith: single unit, simple but doesn't scale well organizationally
2Microservices: independent services, complex but scales with teams
3Start monolith, extract services when you understand boundaries
4Microservices trade code complexity for operational complexity
5Neither is inherently better-context matters

?Quiz

1. Startup with 3 developers building MVP. Best architecture?

2. What's the main operational challenge with microservices?