|
|
|
|
|
by StabbyCutyou
3474 days ago
|
|
Hello all you nice folks on HN. Original author of the article here. A few things I'd like to add, since this is essentially what feedback I get every time this has made the rounds: 1. I don't think microservices are bad, or that they don't work. Quite the contrary. My argument is simply that there is a lot of additional complexity in using this approach to your architecture, and to consider if you're able to handle that before diving in. 2. This was adapted from a lightning talk I gave almost 2 years ago, and is almost by-design light on hard details or deep dives. It was meant to just introduce the problems by talking about fallacies (which many think are strawmen, but they're arguments that i've heard from people in my own discussions on the subject). 3. Even if you disagree with my points, I appreciate folks taking the time to read and provide feedback. Thanks! |
|
1. While network boundaries are not necessary, and in general add a little more overhead (and more boilerplate), it's a necessary evil. It helps you to think of each bit of software separately and in a way, helps you to find errors when they occur. I have worked with monolithic projects and while finding bugs is not hard, if it were a serverless micro-service, it'd be a lot easier.
3. adding discipline as an abstract afterthought is a lot harder than just forcing discipline with micro-service projects.
4. A not my problem approach might not be something to desire, but in my opinion, it helps in 2 major ways:
i) people are a lot more responsible for their code
ii) they don't make assumptions and take things for granted (a lot of error handling for example)
5. Scaling micro-services (especially with AWS Lambda et al. is insanely easy and an afterthought). That is not the case for a monolith where you either have to keep worrying about scaling or re-write code.
I personally feel micro-services are the way to go. However, micro-services in general need a bit more guidance - best practices and so on and we have a lot more work to do before we get there.