Files
Enterprise-MCP-Service-Bus/docs/adr/ADR-018-stack-de-implementacao.md
2026-09-14 14:30:48 -03:00

60 lines
2.4 KiB
Markdown

# ADR-018: Stack de implementacao da RI
**Status:** Aceito.
**Fonte:** este ADR é o registro canônico desta decisão. Para contexto de implementação e validação, ver `RI/docs/AS-BUILT.md` e, quando aplicável, o contrato relevante em `RI/docs/interfaces/`.
## Contexto
Stack de implementação da RI (fecha G2).
## Decisão
Python 3.12+, `uv`, Pydantic v2, YAML declarativo com JSON Schema, SDK oficial `mcp`.
## Alternativas consideradas
Node/TypeScript (SDK MCP também oficial); Go.
## Consequências
Define toda a estrutura de repositório (8.5).
## Versões confirmadas (EP-16-T04)
Spike sem dependências, executável a qualquer momento (EP-16-T04): confirmar,
imediatamente antes de fixar em `pyproject.toml`/
`docker-compose.yml`, os números exatos de versão estável de cada peça da
stack — nenhuma versão citada em código/config sem confirmação real
(`pip index versions`/download direto/instalação real), nunca de memória.
Registro consolidado, com a data em que cada grupo foi verificado (ver
`RI/README.md`, "Versões fixadas", para a mesma lista mantida junto ao
`pyproject.toml`):
Confirmadas em 2026-09-11:
- `mcp` 2.2.0 (SDK Python v2 — API mudou significativamente da v1; ver
comentários em `src/emcp_bus/gateway/server.py`)
- `pydantic` 2.13.x, `opentelemetry-sdk` 1.44.x, `uvicorn` 0.52.x,
`pyjwt[crypto]` 2.14.x, `ruff` 0.16.x, `mypy` 2.3.x, `pytest` 9.1.x
- `OPA` 1.20.2 (binário estático, sintaxe Rego v1 como padrão)
- `pytest-forked` 1.7.x
Confirmadas em 2026-09-14 (M3/M4, via instalação/`docker pull` reais):
- `langgraph` 0.6.x + `langgraph-checkpoint-sqlite` 2.x (EP-11)
- `hypothesis` 6.1xx.x (dev, EP-10-T02)
- `openai` 1.109.x (EP-13-T01)
- `python-dotenv` 1.2.x (dev)
- `types-jsonschema` 4.26.x (dev, stubs para `mypy --strict`; `jsonschema`
em si já era dependência transitiva de `mcp[cli]`, EP-15-T01)
- Langfuse self-hosted 4.35.0 (`docker.langfuse.com/langfuse/langfuse:4`,
imagem oficial, EP-13-T02)
- Keycloak 26.7.3 (`quay.io/keycloak/keycloak:26.7.3`, Quarkus; Standard
Token Exchange GA desde 26.2 — EP-01-T01/EP-07)
- `opentelemetry-collector-contrib` 0.114.0 e `jaeger` (all-in-one) 1.62.0
(perfil `observability` do `docker-compose.yml`, EP-08-T04)
Nenhuma versão acima foi alterada desde a confirmação original — este
registro é o ponto único de verdade que `RI/README.md` linka de volta para
cá.