Rygian 5 minutes ago

Reading this excellent article put me in the mind of wondering if job interviews for developer positions include enough questions about queue management.

"Ben" developed retries without exponential back-off, and only learned about that concept in code review. Exponential back-off should be part of any basic developer curriculum (except if that curriculum does not mention networks of any sort at all).

guideamigo_com an hour ago

I never get this desire for micro services. You IDE can help if there are 500 functions, but nothing would help you if you have 500 micro services. Almost no one fully understands such a system. Is is hard to argue who parts of code are unused. And large scale refactoring is impossible.

The upside seems to be some mythical infinite scalability which will collapse under such positive feedback loops.

  • FooBarWidget 27 minutes ago

    The point of microservices is not technical, it's so that the deployment- and repository ownership structure matches your organization structure, and that clear lines are drawn between responsibilities.

    • sim7c00 4 minutes ago

      its also easier to find devs that have the skills to create and maintain thin services than a large complicated monolith, despite the difficulties found when having to debug a constellation of microservices during a crisis.

  • delusional an hour ago

    I think the dream is that you can reason locally. I'm not convinced that it actually help any, but the dream is that having everything as services, complete with external boundaries and enforced constraints, you're able to more accurately reason about the orchestration of services. It's hard to reason about your order flow if half if it depends on some implicit procedure that's part of your shopping cart.

    The business I'm part of isn't really after "scalable" technology, so that might color my opinion, but a lot of the arguments for microservices I hear from my colleagues are actually benefits of modular programs. Those two have just become synonyms in their minds.

davedx 2 hours ago

This is the kind of well written, in depth technical narrative I visit HN for. I definitely learned from it. Thanks for posting!

  • chipdart an hour ago

    I agree. What a treat. One of the best submissions gracing HN in months.

duffmancd 2 hours ago

I missed it on the first read-through but there is a link to the code used to run the simulations in the first appendix.

Homegrown python code (i.e. not a library), very nicely laid out. And would form a good basis for more experiments for anyone interested. I think I'll have a play around later and try and train my intuition.

azlev an hour ago

Good reading.

In my last job, the service mesh was responsible to do retries. It was a startup and the system was changing every day.

After a while, we suspect that some services were not reliable enough and retries were hiding this fact. Turning off retries exposed that in fact, quality went down.

In the end, we put retries in just some services.

I never tested neither retry budget nor deadline propagation. I will suggest this in the future.

easylion an hour ago

Really good article about retries, its consequences and how load amplification works. Loved it

sim7c00 2 hours ago

ver nice read with lots of interesting points and examples / examination. very thorough imo. Im not a microservices guy but it gives a lot of general concepts also applicable outside of that domain. very good thanks!