Hacker News new | past | comments | ask | show | jobs | submit login

Isn't the only thing here that is enabled by microservices the separate tooling part? Couldn't the rest of it be achieved somewhat easier with a standard service-oriented architecture in a monolith? Why do we need to insert network calls between everything?



It allows different teams to write in different languages, have different deployment cadences and different testing mechanisms.

The overhead of network calls and its attendant problems can be a worthwhile price to pay if you need to loosely couple your teams.

This is why my yardstick of "should it be a micro service?" is "could it work as an entirely separate business?"

I was a massive skeptic of micro services until I saw that it actually solved some people problems pretty well despite incurring a technical cost.

I'm pretty convinced it's an anti pattern in small startups though.


I believe network calls are a looser contract than function calls that would be checked at compile time, so it allows a softer decoupling between multiple teams. Compatibility or intermittent failures are handled with different strategies (rollout, rollback, deadletter queues) instead of impacting release cycles.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: