|
1 | 1 | # EventFlow API — Enterprise Event Management |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
2 | 9 |
|
3 | 10 | O **EventFlow API** é uma solução de back-end **robusta, escalável e orientada a produção** para gestão de eventos, desenvolvida em **.NET 8** e estruturada segundo os princípios da **Clean Architecture**. |
4 | 11 |
|
@@ -29,35 +36,32 @@ graph TD |
29 | 36 |
|
30 | 37 | ## 🌟 Diferenciais Técnicos |
31 | 38 |
|
32 | | -### ⚡ Cache Distribuído (Redis) |
33 | | -- Implementação do padrão **Cache-Aside** |
34 | | -- Redução significativa de latência em operações de leitura (ex: `GetById`) |
35 | | -- Estratégias de **invalidação de cache** para garantir consistência dos dados |
36 | | - |
37 | | -### 🔍 Observabilidade Completa |
38 | | - |
39 | | -- **Tracing Distribuído** *(OpenTelemetry + Jaeger)* |
40 | | - Rastreamento ponta-a-ponta das requisições para identificar gargalos entre **API, Cache e Banco de Dados**. |
41 | | - |
42 | | -- **Logs Estruturados** *(Serilog + Seq)* |
43 | | - Centralização de logs para diagnóstico rápido em ambientes containerizados. |
44 | | - |
45 | | -### 🛡️ Resiliência |
46 | | -- Políticas de **Retry** na conexão com o banco de dados |
47 | | -- Tolerância a falhas transientes |
48 | | - |
49 | | -### 🐳 Containerização |
50 | | -- Ambiente totalmente orquestrado via **Docker Compose**: |
51 | | - - API |
52 | | - - SQL Server |
53 | | - - Redis |
54 | | - - Jaeger |
55 | | - - Seq |
56 | | - |
57 | | -### 🧼 Clean Code |
58 | | -- Uso de **Primary Constructors** |
59 | | -- **Extension Methods** para configuração de DI (`AppConfiguration`) |
60 | | -- Separação estrita de responsabilidades entre camadas |
| 39 | +### ⚡ Performance & Caching |
| 40 | +- **Redis (Cache-Aside Pattern)**: Implementação estratégica de cache distribuído para reduzir a carga no banco de dados. |
| 41 | +- **Latência Otimizada**: Redução significativa no tempo de resposta em operações de leitura (ex: `GetById`). |
| 42 | +- **Consistência**: Estratégias de invalidação de cache (TTL e remoção ativa) para garantir a integridade dos dados. |
| 43 | + |
| 44 | +### 🔍 Observabilidade & Monitoramento |
| 45 | +A aplicação foi projetada para não ser uma "caixa preta" em produção: |
| 46 | +- **Tracing Distribuído (OpenTelemetry + Jaeger)**: Rastreamento ponta-a-ponta (End-to-End) das requisições, permitindo identificar gargalos exatos entre API, Cache e SQL Server. |
| 47 | +- **Logs Estruturados (Serilog + Seq)**: Centralização de logs com enriquecimento de dados, facilitando diagnósticos rápidos em ambiente containerizado. |
| 48 | + |
| 49 | +### 🛡️ Resiliência & Robustez |
| 50 | +- **Políticas de Retry**: Resiliência a falhas transientes na conexão com o banco de dados e serviços externos. |
| 51 | +- **Health Checks**: Monitoramento da saúde dos contêineres e dependências. |
| 52 | + |
| 53 | +### 🐳 Infraestrutura como Código (IaC) |
| 54 | +Ambiente de desenvolvimento totalmente orquestrado via **Docker Compose**, subindo instantaneamente: |
| 55 | +- `API (.NET 8)` |
| 56 | +- `SQL Server` |
| 57 | +- `Redis` |
| 58 | +- `Jaeger UI` (Tracing) |
| 59 | +- `Seq` (Logging) |
| 60 | + |
| 61 | +### 🧼 Code Quality |
| 62 | +- **Modern C#**: Uso de *Primary Constructors* e *Records*. |
| 63 | +- **Clean Architecture**: Separação estrita de responsabilidades. |
| 64 | +- **DI Otimizada**: Uso de *Extension Methods* para manter a configuração de injeção de dependência limpa e organizada. |
61 | 65 |
|
62 | 66 | --- |
63 | 67 |
|
|
0 commit comments