We split our monolith into 15 microservices in 3 months. Then spent 2 years fixing the boundaries.

How we split:

  • One service per database table
  • "That seems like a natural boundary"
  • Ship fast, fix later

What we got wrong:

  • Order service needed Customer data
  • Customer service needed Order history
  • Every request: 5+ inter-service calls
  • Distributed joins via HTTP (yes, really)

The symptoms:

  • P99 latency: 50ms → 800ms
  • One service down = everything broken
  • Teams couldn't release independently (the whole point)
  • Data inconsistency between services

What we should have done:

  • DDD event storming first
  • Find actual bounded contexts
  • Split by business capability, not table
  • Validate boundaries with traffic patterns

Lesson: Service boundaries are the hardest thing to get right. Take your time.


← Alınan Derslere Dön