System Design/05 - Reliability Patterns1 minindice
High Availability
Tópicos
- Deployment Stamps (nota em outra seção)
- Geodes (nota em outra seção)
- Health Endpoint Monitoring (nota em outra seção)
- Circuit Breaker (nota em outra seção)
- Bulkhead (nota em outra seção)
- Como esses tópicos se encaixam entre si?
- Qual escolher em qual cenário?
Visão geral
Alta disponibilidade é a capacidade de continuar operando apesar de falhas — e falhas são certeza, não hipótese.
A aritmética que orienta as decisões
Em série (a requisição depende de todos), as disponibilidades se multiplicam:
99,9% × 99,9% × 99,9% = 99,7%
Dez componentes a 99,9% entregam 99,0% — de 8,8 h para 87 h de indisponibilidade por ano.
Em paralelo (redundância), as indisponibilidades se multiplicam:
1 - (0,1% × 0,1%) = 99,9999%
É essa assimetria que justifica redundância em vez de perseguir o componente perfeito. Detalhes em Availability in Numbers.
Os caminhos
| Objetivo | Padrões |
|---|---|
| Continuar respondendo | Availability — Deployment Stamps, Geodes, Throttling, Health Endpoint Monitoring |
| Sobreviver à falha de dependências | Resiliency — Circuit Breaker, Retry, Bulkhead, Compensating Transaction |
| Não ser derrubado por abuso | Security — Gatekeeper, Federated Identity |
| Assumir quando algo cai | Fail-Over |
O princípio
Disponibilidade não se conquista evitando falhas — se conquista isolando e absorvendo falhas. Um sistema com dez dependências e nenhum isolamento é menos disponível que a pior delas.
Parte de 05 - MOC Reliability Patterns · roadmap.sh/system-design