117 points by iscmt 2 days ago | 49 comments | View on ycombinator
prologic 2 days ago |
nirui 1 day ago |
First thing is, if your service has 7 call layers, maybe it's just too deep.
Second thing is, I found that retry strategy works the best if you define it based on what the nodes are actually doing (instead of treating them as generic nodes). For example, if node D is a database failing a transaction, you may just configure it to retry the transaction instead of doing an application-initialized request resubmit, because the database probably knows better about why the transaction has failed than the application connected to it.
Third thing is, retry is worth it only when progress has been and/or can still be made. If the resources is no longer available forever, then there's no point of retrying.
Scoundreller 2 days ago |
maxchisto 2 days ago |
aftbit 2 days ago |
penguin_booze 2 days ago |
I'm thankful that, at my $WORK, we're all software engineers by title, from the lowly interns to the CTO. Still, everybody knows who's who and whom to talk to, depending on the gravity of the issue.
whatever1 2 days ago |
siscia 2 days ago |
If you can afford that, with all the coordination costs that it comes from it, good.
An alternative is just to let the downstream service own the retry logic. Too many requests? Just error out as soon as possible.
Each team manages its budget and each other team adapts.
UltraSane 2 days ago |
zyngaro 1 day ago |
whoevercares 2 days ago |
cynicalsecurity 2 days ago |
It's not AI that is going to replace you, folks. Btw is it a coincide or has Uber become a family business now?
iwontberude 2 days ago |
This is quite slever. I also really like the concept of an "Error Budget", inspired by SRE and SLO(s) no doubt :)