Microservices

Why?

(a.k.a. Common Problems with Monoliths)

  • comprehensibility
  • language limitations
  • modular scalability 
  • modularity leaks
  • large, loosely-defined teams

What is a microservice?

1 monolith              2+ monoliths

Each monolith can be run and scaled independently, with no shared state

Does micro mean it has to be small?

We're edging around a semantic argument, but micro typically means   concerned with only one thing.

...which may be a huge thing, like payroll. But more typically, they're smaller, like Netflix's streaming API or Amazon's reviews API.

  • smaller parts, easier to understand
  • specialized languages
  • optimized scaling
  • strictly defined modules
  • small, specialized teams

Advantages

Tradeoffs

  • (!) combinatorial complexity
  • (!) inflexible module boundaries
  • more complex infrastructure and deployment
  • cross-team communication very important
Made with Slides.com