Pular para o conteúdo principal

Serviços

Para quem é esta página

Engenheiros back-end. Para o mapa geral, veja Visão Geral.

Tabela de Serviços

ServiçoPortaBCResponsabilidade
Auth Service8001IAMOAuth2 Gov.br, JWT, RBAC, sessão web persistente
Process Service8002Processos CARCRUD, máquina de estados, pendências
Document Service8003Validação DocumentalUpload, armazenamento, trigger de OCR
AI Assistant8004Assistência InteligenteChat, RAG, geração de dossiê
Analytics Service8005AnalyticsRelatórios, KPIs, exportações
Integration Service8006Integrações ExternasACL: SICAR, SIGEF, IBAMA
Adapter de Mensageria (futuro/opcional)

A integração com apps de mensageria (WhatsApp, Telegram etc.) será implementada como um serviço desacoplado na porta 8007, quando necessário. Ele recebe webhooks externos, traduz para o protocolo interno e repassa para o mesmo backend dos demais serviços. Ver ADR-008 e UC-013.

Estrutura Interna (padrão por serviço)

src/carla/modules/{nome}/
├── domain/
│ ├── entities.py # Agregados e entidades
│ ├── value_objects.py # VOs com validação
│ ├── services.py # Serviços de domínio
│ ├── events.py # Domain Events
│ └── repository.py # Interface (ABC)
├── application/
│ └── use_cases/ # Um arquivo por caso de uso
├── infrastructure/
│ ├── models.py # SQLAlchemy ORM
│ ├── repository.py # Implementação concreta
│ └── (adapters) # Clientes externos
└── presentation/
├── router.py # FastAPI endpoints
└── schemas.py # Pydantic request/response

Recursos Kubernetes (Produção)

ServiçoRéplicas MinCPU ReqMem ReqHPA
Process Service2500m512MiCPU > 70%
AI Assistant2500m512MiConexões > 100
Document Worker21000m1GiProfundidade da fila
MVP Hackathon

Para o hackathon, todos os módulos rodam como um monolito modular em um único processo FastAPI. A separação em serviços acontece na Fase 3 via Strangler Fig Pattern.