I Benchmarked 11 HTTP Resilience Libraries for Correctness. Here's What I Found
When I started building ffetch, I had a fairly simple goal: make HTTP requests more resilient without turning a fetch wrapper into a complicated piece of machinery. Retries, backoffs, circuit breaking, and the other patterns could live around a small core, with plugins adding whatever a particular application needed. I liked the elegance of that design, and keeping the library lightweight was a big part of the appeal.
The trouble started when I went back through the code looking for correctness issues. I found subtle bugs and edge cases, then more of them as I looked at what happens when you combine resilience patterns. I worked through the fixes, but the implementation kept growing, until the small library I had set out to write had become huge and complex. That was frustrating, because the simplicity was something I had deliberately designed for. But I couldn't justify keeping...
Copyright of this story solely belongs to hackernoon.com. To see the full text click HERE