← Back to context

Comment by sagarm

3 years ago

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.

    • I’m not sure one binary is the scaling problem you’d hit first though - makes me wonder just how many people can work on something that gets compiled together into a monolith