PHPackages                             ananiaslitz/resilience - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ananiaslitz/resilience

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ananiaslitz/resilience
======================

00PHP

Since Jun 11Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/Ananiaslitz/resilience)[ Packagist](https://packagist.org/packages/ananiaslitz/resilience)[ RSS](/packages/ananiaslitz-resilience/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

🛡️ PHP Resilience
=================

[](#️-php-resilience)

Uma biblioteca de **resiliência para aplicações PHP**, inspirada em padrões como *Resilience4j*, projetada para ser leve, extensível e compatível com qualquer framework.

> 📌 Desenvolvido com foco em **alta disponibilidade**, **isolamento de falhas** e **escalabilidade controlada**.

---

✨ Padrões Suportados
--------------------

[](#-padrões-suportados)

- ✅ **Circuit Breaker** – Abre, fecha e meio-abre com base em falhas controladas.
- ✅ **Rate Limiter** – Controla a taxa de chamadas por chave (InMemory ou Redis).
- ✅ **Bulkhead** – Isola blocos de execução com limite de concorrência simultânea.
- 🔜 **Retry** – Tentativas automáticas com controle de backoff.
- 🔜 **Time Limiter** – Cancela execuções que excedem o tempo permitido.

---

🚀 Instalação
------------

[](#-instalação)

```
composer require sualib/php-resilience
```

Requer PHP &gt;= 8.1

🧩 Exemplo de Uso
----------------

[](#-exemplo-de-uso)

### Circuit Breaker

[](#circuit-breaker)

```
$circuitBreaker = new InMemoryCircuitBreaker('service-a');

try {
    $circuitBreaker->call(function () {
        // chamada instável aqui
    });
} catch (CircuitBreakerOpenException $e) {
    // fallback
}
```

### Rate Limiter (Redis)

[](#rate-limiter-redis)

```
$redis = new Redis(); // configure sua conexão
$stateManager = new RedisRateLimiterStateManager($redis);

$rateLimiter = new RateLimiter(
    'api-user-123',
    10, // 10 requisições
    60, // por 60 segundos
    $stateManager
);

if (!$rateLimiter->tryConsume()) {
    throw new TooManyRequestsException();
}
```

### Bulkhead

[](#bulkhead)

```
$bulkhead = new InMemoryBulkhead('email-sender', 5);

try {
    $bulkhead->call(fn() => enviarEmail());
} catch (BulkheadFullException $e) {
    // fallback ou fila
}
```

Testes
------

[](#testes)

Utilize o PHPUnit com Mockery:

```
composer test
```

Arquitetura
-----------

[](#arquitetura)

- Totalmente orientado a contratos (interfaces).
- Estado externo (ex: Redis) separado por StateManager.
- Sem dependência de framework.
- Pronto para uso em microserviços, APIs REST ou workers assíncronos.

### 🗺️ Roadmap

[](#️-roadmap)

✅ Circuit Breaker (InMemory e Redis)

✅ Rate Limiter (InMemory e Redis)

✅ Bulkhead (com timeout ou fila opcional)

✅ Retry com controle de tentativas

✅ TimeLimiter

⬜ Suporte ao Symfony/PSR para middlewares plugáveis

⬜ Observabilidade (handlers de métricas e eventos)

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/963a9f4c77e080eaafe63352d0ec2e1dc101cb54b734c0a144223893793000b5?d=identicon)[Ananiaslitz](/maintainers/Ananiaslitz)

---

Top Contributors

[![DegasLitz](https://avatars.githubusercontent.com/u/207736081?v=4)](https://github.com/DegasLitz "DegasLitz (2 commits)")[![dhsananias](https://avatars.githubusercontent.com/u/29582813?v=4)](https://github.com/dhsananias "dhsananias (1 commits)")

### Embed Badge

![Health badge](/badges/ananiaslitz-resilience/health.svg)

```
[![Health](https://phpackages.com/badges/ananiaslitz-resilience/health.svg)](https://phpackages.com/packages/ananiaslitz-resilience)
```

###  Alternatives

[smalls/video-tools

短视频的拓展包，集成各大短视频的去水印功能

6868.8k](/packages/smalls-video-tools)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
