# ADR-0002 — Python + FastAPI como backend Core

**Status:** Accepted  
**Data:** 2026-07-14  
**Decisores:** Arquitetura de Software

---

## Contexto

O produto é intensivo em dados, pipelines de ingestão e orquestração de IA. A stack deve maximizar produtividade nesses eixos, com tipagem e OpenAPI, sem depender de shared hosting PHP.

## Decisão

Adotar **Python 3.12+** com **FastAPI** como framework HTTP do composition root `apps/api`, SQLAlchemy 2 + Alembic para persistência, Pydantic na borda.

## Alternativas consideradas

| Opção | Prós | Contras | Por que não (MVP) |
|--------|------|---------|---------------------|
| NestJS / Node | Unificação com TS | Ecossistema dados/IA mais fraco | Menor fit analítico |
| Spring Boot | Enterprise mature | Verbose; hiring/custo | Overkill inicial |
| Go | Perf e binários | Menos libs IA/dados | Futuro em workers hot-path |
| Laravel / PHP | Fit hosting | Menos adequado a workers/IA/grafo | Apenas marketing estático se útil |

## Consequências

### Positivas
- Ecossistema de ML/dados alinhado ao core domain.
- OpenAPI automático acelera contrato com frontend.
- Async nativo para I/O bound (LLM, HTTP fontes).

### Negativas / riscos
- CPU-bound puro limitado pelo GIL → workers/processos.
- Disciplina de tipos necessária (mypy).

### Follow-ups
- [ ] Definir template de módulo Python.
- [ ] Escolher ARQ vs Celery em spike curto (paralelo à implementação).

## Referências

- [Tecnologias](../arquitetura/02-tecnologias.md)
