Plataforma distribuída para detecção, análise e alerta de eventos naturais (chuvas extremas, enchentes, deslizamentos, incêndios, sismos), com arquitetura baseada em microsserviços, CQRS, DDD e Clean Architecture.
O sistema processa dados em tempo real de múltiplas fontes (APIs, IoT, satélites), calcula risco por região e dispara alertas multicanal (SMS, push, WhatsApp, IoT/sirenes), com suporte multi-tenant e trilha auditável.
sentinel/
│
├─ services/
| ├─ api-gateway/
| │ ├─ ApiGateway.Api/
| │ │ ├─ Program.cs
| │ │ ├─ appsettings.json
| │ └─ Dockerfile
| |
│ ├─ ingestion/
│ │ ├─ src/
│ │ │ ├─ Ingestion.Domain/
│ │ │ ├─ Ingestion.Application/
│ │ │ ├─ Ingestion.Infrastructure/
│ │ │ └─ Ingestion.Api/
│ │ ├─ tests/
│ │ │ ├─ Ingestion.UnitTests/
│ │ │ └─ Ingestion.IntegrationTests/
│ │ └─ Dockerfile
│ │
│ ├─ geospatial/
│ │ ├─ src/
│ │ │ ├─ Geospatial.Domain/
│ │ │ ├─ Geospatial.Application/
│ │ │ ├─ Geospatial.Infrastructure/
│ │ │ └─ Geospatial.Api/
│ │ ├─ tests/
│ │ └─ Dockerfile
│ │
│ ├─ risk-scoring/
│ │ ├─ src/
│ │ │ ├─ RiskScoring.Domain/
│ │ │ ├─ RiskScoring.Application/
│ │ │ ├─ RiskScoring.Infrastructure/
│ │ │ └─ RiskScoring.Api/
│ │ ├─ tests/
│ │ └─ Dockerfile
│ │
│ ├─ alert-orchestrator/
│ │ └─ ...
│ │
│ ├─ channels/
│ │ └─ ...
│ │
│ ├─ reporting/
│ │ └─ ...
│ │
│ ├─ tenants-billing/
│ │ └─ ...
│ │
│ └─ compliance-audit/
│ └─ ...
│
├─ platform/
│ ├─ docker-compose.yml
│ ├─ k8s/
│ │ ├─ ingress.yaml
│ │ ├─ deployments/
│ │ ├─ services/
│ │ └─ hpa/
│ ├─ helm/
│ └─ observability/
│ ├─ grafana/
│ ├─ prometheus/
│ ├─ loki/
│ └─ otel-collector/
│
├─ libs/
│ ├─ BuildingBlocks/
│ │ ├─ Messaging/
│ │ ├─ Outbox/
│ │ └─ Observability/
│ └─ SharedKernel/
│
├─ docs/
│ ├─ RFC-Arquitetura.md
│ └─ diagrams/
│ ├─ architecture.mmd
│ └─ classDiagram.mmd
│
└─ README.md
docker compose up -d- Kafka + Zookeeper
- PostgreSQL
- Redis
- MinIO
- Elasticsearch + Kibana
- Grafana + Prometheus + Loki
- Serviços iniciais: ingestion, geospatial, risk-scoring, alert-orchestrator, channels, reporting
- CQRS mínimo (3 commands, 4 events, 3 queries)
- Docker Compose com stack central
- Geoprocessamento (PostGIS/Elasticsearch)
- Outbox/CDC
- Dashboards e mapas de calor
- Kubernetes (HPA, KEDA, observabilidade com OTEL)
- Multi-tenant e RBAC
- Machine Learning no risk-scoring
- Integração IoT (sirenes) e WhatsApp Business API
- Unitários (regras de domínio)
- Contract Tests (Pact)
- Integração (Testcontainers)
- E2E em Kubernetes (kind/minikube)
- Latência ingestão → alerta (P50/P95)
- Taxa de confirmação de alertas
- Precisão de risco vs ocorrências reais
- Erros por canal de entrega
- Reprodutibilidade via event sourcing + auditoria legal
- Geoprocessamento real com PostGIS/Elasticsearch
- Escalonamento orientado a eventos com KEDA
- Multi-tenant completo com limites e billing
- Integração IoT (sirenes físicas)