laravel-http-client-resilience

star 136

Use the HTTP client with sensible timeouts, retries, and backoff; capture context and handle failures explicitly

jpcaparas By jpcaparas schedule Updated 11/4/2025

name: laravel:http-client-resilience description: Use the HTTP client with sensible timeouts, retries, and backoff; capture context and handle failures explicitly

HTTP Client Resilience

Design outbound calls to be predictable and observable.

Commands

use Illuminate\Support\Facades\Http;

$res = Http::baseUrl(config('services.foo.url'))
    ->timeout(5)
    ->retry(3, 200, throw: false)
    ->withHeaders(['Accept' => 'application/json'])
    ->get('/v1/things', ['q' => 'bar']);

if (!$res->successful()) {
    Log::warning('foo api failure', [
        'status' => $res->status(),
        'body' => substr($res->body(), 0, 500),
    ]);
}

Patterns

  • Set timeouts explicitly (client and server defaults differ)
  • Use limited retries with backoff for transient failures only
  • Prefer dependency injection for testability
  • Add request/response context to logs (redact sensitive data)
  • Use pool() for concurrency when calling multiple endpoints
Install via CLI
npx skills add https://github.com/jpcaparas/superpowers-laravel --skill laravel-http-client-resilience
Repository Details
star Stars 136
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator