webrek/laravel-circuit-breaker
spatie/queue-interfaces or fruitcake/laravel-cors for API-heavy workflows.CircuitBreakerTripped, CircuitBreakerRecovered) for observability (e.g., logging, alerting, or triggering fallback workflows).failure_threshold, reset_timeout) may lead to false positives (breaking working services) or false negatives (allowing degraded services).config('circuit_breaker.enabled')) for gradual rollout.$client = new CircuitBreakerClient(
new GuzzleClient(),
config('circuit_breakers.stripe')
);
Illuminate\Bus\Queueable with a CircuitBreakerJob trait.DatabaseCircuitBreaker adapter for read/write operations.CircuitBreakerTripped events to trigger alerts (e.g., Slack, PagerDuty).redis or pdo for state storage.config/circuit_breakers.php:
'stripe' => [
'failure_threshold' => 5,
'reset_timeout' => 60, // seconds
'state_storage' => 'redis',
],
php artisan circuit:status) will be critical.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Redis outage | Breakers stuck in last state | Fallback to database storage |
| Misconfigured thresholds | False positives/negatives | Start with conservative defaults |
| Unhandled exceptions | Breaker state corruption | Wrap all external calls in try-catch |
| Network partitions | Inconsistent state across workers | Use sticky sessions or leader election |
#[CircuitBreaker] attribute if supported).How can I help you explore Laravel packages today?