
Every backend project seems to start the same way. Someone creates an HTTP client, adds a timeout,...
Every backend project seems to start the same way.
Someone creates an HTTP client, adds a timeout, copies a retry configuration from another repository, and calls it a day.
A few months later:
The problem isn't the HTTP client.
The problem is that resilience strategies are usually treated as implementation details instead of architectural decisions.

What starts as a single slow dependency can quickly become a system-wide incident.
A payment service and an analytics service should not share the same HTTP configuration.
Yet many teams use something like this everywhere:
const api = axios.create({
timeout: 5000,
});
Or maybe:
const api = axios.create({
timeout: 5000,
});
axiosRetry(api, {
retries: 3,
});
This works.
Until it doesn't.
Different workloads require different resilience strategies.
A high-throughput internal service has completely different requirements from a low-latency API or an unreliable third-party integration.
That's exactly why I introduced Presets in Super HTTP TS.
Instead of forcing developers to manually configure every resilience component, Super HTTP TS provides presets optimized for common production scenarios.
Think of them as opinionated resilience profiles.
Designed for services that process a large volume of requests.
const client = createClient({
baseURL: 'https://api.example.com',
preset: 'high-throughput',
});
Optimized for:
Ideal for:

When throughput matters, every unnecessary millisecond counts.
Designed for applications where response time matters more than retries.
const client = createClient({
baseURL: 'https://api.example.com',
preset: 'low-latency',
});
Optimized for:
Ideal for:

Sometimes failing fast is better than waiting longer.
Designed for external services and unstable dependencies.
const client = createClient({
baseURL: 'https://api.example.com',
preset: 'resilient-api',
});
Includes strategies such as:
Ideal for:

Protect your system before downstream failures become your failures.
The goal isn't to hide complexity.
The goal is to provide sensible defaults.
Most production incidents don't happen because developers don't know what a Circuit Breaker is.
They happen because resilience mechanisms are:
Presets provide a proven starting point while still allowing full customization.
Super HTTP TS was heavily inspired by concepts that have existed for years in the .NET ecosystem:
The idea was simple:
Bring these production-proven patterns into the TypeScript ecosystem with a developer experience that feels natural for Node.js teams.
Presets are only one piece of the puzzle.
The long-term vision for Super HTTP TS is to become a resilience-first communication layer for TypeScript applications, supporting both HTTP and gRPC workloads with a consistent API.
I'd love to hear your thoughts.
What preset would you add?
🔗 Documentation https://jhonesgoncalves.github.io/super-http-ts/
🔗 GitHub https://github.com/jhonesgoncalves/super-http-ts
🔗 My Website https://jhonesgoncalves.com
aiMost of us have seen a coding agent fail to complete a task we know it can do. We just don't...
googlecloudWhen building Generative AI applications, developers often encounter a massive bottleneck: sequential...
discussI’ve been thinking about sharing some electronic circuit posts on Dev.to — small circuits, DIY...
agentsWhat nobody tells you about exporting your multi-agent prototype to a local workspace. Every...
agenticarchitectAutonomous agents are genuinely good at answering messy business questions. Give one an LLM and a set...
aiPR volume went up, ticket quality didn't, and the gap got filled with LLMs on both sides of the review: bots reviewing, bots replying, bots occasionally arguing with bots about priorities that only existed in a teammate's head. Our CEO named the actual problem, and it's bigger than code review.
Workflows from the Neura Market marketplace related to this Stable Diffusion resource