## Métricas | Métrica | Valor | | --- | --- | | Padrões | 13 | | Categorias | 5 | --- ## Projetos ### hexagonal | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/hexagonal](https://github.com/thiagoeti/hexagonal) | | Tags | `arquitetura` `ddd` | | Categoria | Arquitetura | | Problema | Regra de negócio acoplada a framework, banco e APIs | | Quando usar | Domínio rico que precisa trocar infraestrutura sem reescrita | | Descrição | Isola o domínio no centro e conecta o mundo externo por portas e adaptadores. | ### clean-architecture | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/clean-architecture](https://github.com/thiagoeti/clean-architecture) | | Tags | `arquitetura` `ddd` | | Categoria | Arquitetura | | Problema | Camadas sem direção clara de dependência | | Quando usar | Sistemas de longa vida com alta testabilidade | | Descrição | Organiza o sistema em camadas concêntricas com dependências apontando para o domínio. | ### microservices | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/microservices](https://github.com/thiagoeti/microservices) | | Tags | `arquitetura` `distribuído` | | Categoria | Arquitetura | | Problema | Monólito que trava deploy e escala de times | | Quando usar | Domínios independentes com times e ciclos de deploy próprios | | Descrição | Divide o sistema em serviços pequenos, autônomos e implantados de forma independente. | ### cqrs | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/cqrs](https://github.com/thiagoeti/cqrs) | | Tags | `dados` `ddd` | | Categoria | Dados | | Problema | Modelo único sobrecarregado por leitura e escrita | | Quando usar | Leitura e escrita com cargas e formatos muito diferentes | | Descrição | Separa o modelo de escrita (commands) do modelo de leitura (queries). | ### event-sourcing | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/event-sourcing](https://github.com/thiagoeti/event-sourcing) | | Tags | `dados` `eventos` | | Categoria | Dados | | Problema | Estado atual sem histórico de como chegou até ali | | Quando usar | Auditoria completa, reprocessamento e linha do tempo | | Descrição | Persiste cada mudança como evento imutável e reconstrói o estado a partir deles. | ### outbox | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/outbox](https://github.com/thiagoeti/outbox) | | Tags | `dados` `mensageria` | | Categoria | Dados | | Problema | Gravar no banco e publicar evento sem garantia atômica | | Quando usar | Consistência entre banco de dados e broker de mensagens | | Descrição | Grava o evento na mesma transação do dado e publica depois, de forma confiável. | ### eda | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/eda](https://github.com/thiagoeti/eda) | | Tags | `integração` `eventos` | | Categoria | Integração | | Problema | Serviços acoplados por chamadas síncronas em cadeia | | Quando usar | Reações assíncronas a fatos do negócio | | Descrição | Serviços se comunicam publicando e consumindo eventos, sem conhecer uns aos outros. | ### saga | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/saga](https://github.com/thiagoeti/saga) | | Tags | `integração` `distribuído` | | Categoria | Integração | | Problema | Transação que atravessa vários serviços sem 2PC | | Quando usar | Fluxos longos como pedido, pagamento e estoque | | Descrição | Coordena transações distribuídas em passos locais com ações de compensação. | ### api-gateway | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/api-gateway](https://github.com/thiagoeti/api-gateway) | | Tags | `integração` `distribuído` | | Categoria | Integração | | Problema | Clientes chamando dezenas de serviços diretamente | | Quando usar | Ponto único para roteamento, autenticação e rate limit | | Descrição | Entrada única que roteia, agrega e protege as chamadas aos serviços internos. | ### circuit-breaker | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/circuit-breaker](https://github.com/thiagoeti/circuit-breaker) | | Tags | `resiliência` `distribuído` | | Categoria | Resiliência | | Problema | Falha de um serviço derrubando os demais em cascata | | Quando usar | Chamadas a dependências externas instáveis | | Descrição | Interrompe chamadas a um serviço com falha e libera aos poucos após recuperação. | ### bulkhead | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/bulkhead](https://github.com/thiagoeti/bulkhead) | | Tags | `resiliência` `distribuído` | | Categoria | Resiliência | | Problema | Um recurso lento esgotando threads e conexões de todo o sistema | | Quando usar | Isolar pools por dependência ou cliente | | Descrição | Isola recursos em compartimentos para que a falha de um não afunde os outros. | ### repository | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/repository](https://github.com/thiagoeti/repository) | | Tags | `código` `ddd` | | Categoria | Código | | Problema | Domínio acoplado a SQL e ORM | | Quando usar | Abstrair persistência atrás de uma coleção de agregados | | Descrição | Expõe a persistência como uma coleção do domínio, escondendo o acesso a dados. | ### strategy | Campo | Valor | | --- | --- | | GitHub | [@thiagoeti/strategy](https://github.com/thiagoeti/strategy) | | Tags | `código` `gof` | | Categoria | Código | | Problema | Condicionais extensas para escolher um algoritmo | | Quando usar | Trocar regra de cálculo, frete ou pagamento em tempo de execução | | Descrição | Encapsula algoritmos intercambiáveis atrás de uma mesma interface. |