#Architecture

Our Monolith to Microservices Journey

October 15, 2024
15 min read

Our Monolith to Microservices Journey

After 5 years, our Ruby on Rails monolith had grown to 500,000 lines of code. Deploy times were 45 minutes. A bug in billing could take down the entire platform. Something had to change.

The Strategy

We adopted the "Strangler Fig" pattern—gradually replacing parts of the monolith with new services while keeping everything running.

Key Decisions

  • 1.Start with the edges: We began with services that had minimal dependencies
  • 2.Shared nothing: Each service owns its data completely
  • 3.Async by default: Inter-service communication uses events, not synchronous calls
  • The Results

    After 18 months:

  • Deploy times: 45 min → 3 min
  • Incident blast radius: 100% → ~15%
  • Team autonomy: Significantly improved
  • What We'd Do Differently

    We should have invested in developer tooling earlier. The cognitive overhead of running 15 services locally was significant.

    System Status:Online
    Session: 00:00:00