This is indeed an important pattern to build reliable systems. It's worth exploring in various languages. Here is the Rust perspective.
It's about time that it got fixed... This was really a language defect.
You think async/await works in the same way across languages? Think again! There are several choices of implementation behind it. You better know which choices your particular runtime did, otherwise you will get surprises. It also means it's harder to reuse language from a given runtime and carry it over somewhere else.
Of course I recommend reading the full paper, but this short summary gives a good idea of the content.
Long and nice guide about watchdogs in an embedded context.
More signs of C++26 being an important new standard for reliability and safety.
Or how to properly paginate results when you have a database.
Can you rely on something? Indeed, if it fails "only" 2% of the time it can mean a lot of failures... you better handle the edge cases and degrade gracefully.
Good point, disabling asserts in production is not the best default position to have.
It's about time such a thing gets standardised in C++!
Those have no name... but you'll encounter them regularly indeed.
Interesting piece which challenges the shared-memory vs. message-passing dichotomy. It message passing indeed gets rid of data races but nothing more. Of course this is nice already, but that doesn't mean you can't have the other families of concurrency bugs creeping in.
Short explanation of why you want to make invalid state impossible to represent. This leads to nice properties in your code, the price to pay is introducing more types to encode the invariants of course.
A good explainer on what metastable failures are and how to try to mitigate them.
This is something I've definitely seen indeed. There are clearly a threshold effect in the amount of code you have to manage. Solutions working at smaller amounts don't work anymore a couple of order of magnitudes higher, and vice versa.
Looks like a nice kit to add to your tool belt. Does some handy checks if you have a Postgres database to manage.
A bit of a shameless plug toward the end. That said the explanations of why Cloudflare is banking on Rust so much or how the recent downtime could have been avoided are spot on.
Error handling is not easy. Having simple rules to apply for complex systems is a good thing. Of course the difficulty is to apply them consistently.
Interesting point of view. Indeed, you probably want things to not be available 100% of the time. This forces you to see how resilient things really are.
Interesting approach for a project to collect such traps in there dependencies like this.
This is a good look at the reasons behind throttling. If you accept a less naive model than "preventing abuse", you can build a better throttling strategy.