
WebSpark.HttpClientUtility
Drop-in HttpClient wrapper for .NET 8-10+ with Polly resilience, response caching, OpenTelemetry tracing, and a separate Crawler package. One-line setup replaces 50+ lines of boilerplate.

The story
The HTTP plumbing my own projects run on, with thousands of NuGet downloads.
- Problem
- Every .NET app reinvents the same HttpClient code for retries, caching and telemetry, and the reasons behind those choices tend to live only in someone's head.
- Decision
- Package it once, hold it to a published quality bar, and write the decisions down. Four consecutive DevSpark specs turned undocumented habits into recorded standards.
- Implementation
- A documentation site; a zero-warning build with full XML docs and hundreds of passing tests; a split into a base package and a crawler extension with lockstep versioning and atomic publishing; and batch execution with P50/P95/P99 statistics.
- Outcome
- The base package dropped from 13 to 9 dependencies and shrank by more than 40%, with zero unexpected breaking changes for existing users.
Overview
Drop-in HttpClient wrapper for .NET 8-10+ with Polly resilience, response caching, OpenTelemetry tracing, and a separate Crawler package. One-line setup replaces 50+ lines of boilerplate.
Details
WebSpark.HttpClientUtility is a drop-in HttpClient wrapper for .NET 8-10+ with Polly resilience (retries, circuit breakers), response caching, correlation IDs, and OpenTelemetry tracing — configured in one AddHttpClientUtility() call. Includes a separate Crawler package for web scraping. hundreds of passing unit tests.
Related insights
Articles that explain the architecture decisions, implementation patterns, or delivery trade-offs behind this project.
My Journey as a NuGet Gallery Developer and Educator
Building Resilient .NET Applications with Polly
DevSpark in Practice: A NuGet Package Case Study
TaskListProcessor - Enterprise Async Orchestration for .NET
Delivery Pipeline
- Pipeline
- .NET Build and Publish
- Stage
- Production
- Status
- Active
- Notes
- Published to NuGet.org with automated CI/CD pipeline.
- NuGet.orghttps://www.nuget.org/packages/WebSpark.HttpClientUtilityStatus: ActivePublic NuGet package registry