← Back to context

Comment by alexpotato

3 years ago

My favorite summary of why not to use microservices is from Grug:

"grug wonder why big brain take hardest problem, factoring system correctly, and introduce network call too

seem very confusing to grug"

https://grugbrain.dev/#grug-on-microservices

IMO microservices primarily solve organizational problems, not technical problems.

They allow a team to release independently of other teams that have or want to make different risk/velocity tradeoffs. Also smaller units being released means fewer changes and likely fewer failed releases.

  • > Also smaller units being released means fewer changes and likely fewer failed releases.

    The interfaces are the hard part, so you may have fewer internal failures but problems between services seem more likely.

    • Yeah, not to mention all the extra operational issues and failure modes that come with RPCs vs function calls. Integration testing and release coordination both become more difficult as well.

      But hundreds of people contributing to a single binary is probably not realistic; at some point you'll need to factor it into pieces that can be can have somewhat independent operations.

      1 reply →