aedart / athenaeum-circuits
Circuit Breaker for Laravel
10.9.0
2026-06-08 07:22 UTC
Requires
- php: ^8.4
- aedart/athenaeum-contracts: ^10.9
- aedart/athenaeum-support: ^10.9
- aedart/athenaeum-utils: ^10.9
- illuminate/cache: ^v13.14.0
- illuminate/events: ^v13.14.0
This package is auto-updated.
Last update: 2026-06-08 07:23:32 UTC
README
This package offers a Circuit Breaker that can be used to "[...] detect failures and encapsulates the logic of preventing a failure from constantly recurring, during maintenance, temporary external system failure or unexpected system difficulties[...]" (wiki).
A detailed explanation of how the Circuit Breaker Pattern works, can be found on Medium and Martin Fowler's blog
Example
<?php use Aedart\Circuits\Traits\CircuitBreakerManagerTrait; class WeatherService { use CircuitBreakerManagerTrait; public function forecast() { $circuitBreaker = $this->getCircuitBreakerManager() ->create('weather_service'); return $circuitBreaker->attempt(function() { // Perform 3rd party API call... not shown here }, function(){ // Service has failed and is unavailable, do something else... }); } }
Documentation
Please read the official documentation for additional information.
Repository
The mono repository is located at github.com/aedart/athenaeum
Versioning
This package follows Semantic Versioning 2.0.0
License
BSD-3-Clause, Read the LICENSE file included in this package