Repository navigation
Home
Backend distribuído para gestão de uma oficina mecânica. Recebe veículos, monta orçamentos, recolhe a aprovação do cliente por e-mail/webhook, integra cobrança com Mercado Pago e devolve o carro ao cliente quando o pagamento é confirmado.
Projeto desenvolvido pelo grupo do Tech Challenge 13SOAT — FIAP.
flowchart LR
User([👤 Cliente / Atendente]):::actor
MP([💳 Mercado Pago]):::ext
SMTP([📧 SMTP]):::ext
NR([📊 New Relic]):::ext
subgraph Hermes[Mecânica Hermes]
APIG[API Gateway + Cognito]
Lambda[Lambda CognitoToken]
OS[API Ordem de Serviço]
Cad[API Cadastros]
Pag[API Pagamentos]
end
User -->|HTTPS + JWT| APIG
APIG --> Lambda
APIG --> OS
APIG --> Cad
APIG --> Pag
Pag <-->|preferences + webhook HMAC| MP
Cad -->|orçamento + token webhook| SMTP
Lambda -->|token JWT por e-mail| SMTP
OS -.-> NR
Cad -.-> NR
Pag -.-> NR
classDef actor fill:#2d6a4f,color:#fff
classDef ext fill:#6c757d,color:#fff
Escolha a sua jornada:
| Você é... | Comece por |
|---|---|
| 🎓 Avaliador / banca FIAP | Para avaliadores → Tech Challenge — FIAP 13SOAT → Domínio de negócio → Arquitetura |
| 👩💻 Dev novo no time | Para devs novos → Stack completa via Docker Compose → Componentes por serviço → Como contribuir |
| 🛠️ Operador / SRE | Para operadores → Runbook macro → Observabilidade |
| 🔌 Integrador externo | Para integradores externos → Autenticação Cognito + JWT → API pública |
A Wiki está organizada em 13 seções (veja o menu lateral). As mais consultadas:
- 🏛️ Arquitetura — visão C4 do sistema e padrões transversais (Clean Architecture, SAGA, Outbox, State Pattern).
- 🔁 Fluxos de negócio — os 8 cenários cobertos pela suíte E2E, descritos passo a passo.
- 📂 Repositórios — os 9 repos do ecossistema, seus papéis e como se conectam.
- 📨 Catálogo de eventos — os 8 contratos
.v1que circulam no RabbitMQ. - 🚨 Runbook macro — triagem inicial para incidentes cross-service.
| Serviço | Build / coverage |
|---|---|
api-ordem-servico |
|
api-cadastros |
|
api-pagamentos |
|
api-sdk |
Cobertura mínima exigida pelo CI: ≥ 80% de linhas em todos os serviços .NET.
Esta Wiki é mantida em arquivos Markdown versionados no repositório mecanica-hermes-docs, seguindo o plano editorial. Mudanças passam por Pull Request com revisão.
Última atualização: 2026-05-19
🔧 Mecânica Hermes — Tech Challenge 13SOAT (FIAP) · Wiki pública, não inclua credenciais · Editar a Wiki · Plano editorial
🏠 Home
📖 Visão geral
🧭 Como usar a Wiki
🚀 Início rápido
🏛️ Arquitetura
Padrões transversais
- Clean Architecture + DDD + CQRS
- Result Pattern
- State Pattern
- SAGA com MassTransit
- Outbox transacional
- Idempotência cross-service
- DLQ observability
Mensageria
Persistência
Segurança
- Autenticação Cognito + JWT
- Autorização por scopes
- M2M Client Credentials
- Webhooks assinados (HMAC)
- Modelo de ameaças
🔁 Fluxos de negócio
- Caminho feliz
- Orçamento rejeitado
- Pagamento recusado e recriado
- Pagamento expirado
- Cancelamento em execução
- Cancelamento em aguardando pagamento
- Idempotência de webhook
- Proteção por timeout da SAGA
🛠️ Infraestrutura e deploy
- Diagrama AWS completo
- Provisionamento (Terraform)
- Cluster Kubernetes
- API Gateway + VPC Link
- Cognito
- Lambda CognitoToken
- Bancos de dados
- RabbitMQ
- Pipelines GitHub Actions
📊 Observabilidade
- Visão geral
- Logs
- Métricas de negócio
- Métricas de mensageria
- Traces distribuídos
- Dashboards e alertas
🧪 Qualidade
🚨 Operação
- Runbook macro
- Runbook — Ordem de Serviço
- Runbook — Cadastros
- Runbook — Pagamentos
- Resposta a incidentes
- Forçar limpeza de namespace
🧩 SDK compartilhado
👥 Contribuição
📚 Referência
🧠 Decisões