Files
Enterprise-MCP-Service-Bus/docs/adr/ADR-018-implementation-stack.en-us.md
2026-09-14 14:54:28 -03:00

59 lines
2.3 KiB
Markdown

# ADR-018: RI implementation stack
**Status:** Accepted.
**Source:** this ADR is the canonical record of this decision. For implementation and validation context, see `RI/docs/AS-BUILT.md` and, when applicable, the relevant contract in `RI/docs/interfaces/`.
## Context
RI implementation stack (closes G2).
## Decision
Python 3.12+, `uv`, Pydantic v2, declarative YAML with JSON Schema, official `mcp` SDK.
## Alternatives Considered
Node/TypeScript (the MCP SDK is also official there); Go.
## Consequences
Defines the entire repository structure (8.5).
## Confirmed Versions (EP-16-T04)
Dependency-free spike, runnable at any time (EP-16-T04): confirm,
immediately before pinning in `pyproject.toml`/
`docker-compose.yml`, the exact stable version numbers of each piece of the
stack — no version cited in code/config without real confirmation
(`pip index versions`/direct download/actual install), never from memory.
Consolidated record, with the date each group was verified (see
`RI/README.md`, "Versões fixadas", for the same list maintained alongside
`pyproject.toml`):
Confirmed on 2026-09-11:
- `mcp` 2.2.0 (Python SDK v2 — the API changed significantly from v1; see
comments in `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 (static binary, Rego v1 syntax as default)
- `pytest-forked` 1.7.x
Confirmed on 2026-09-14 (M3/M4, via actual install/`docker pull`):
- `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 for `mypy --strict`; `jsonschema`
itself was already a transitive dependency of `mcp[cli]`, EP-15-T01)
- Langfuse self-hosted 4.35.0 (`docker.langfuse.com/langfuse/langfuse:4`,
official image, EP-13-T02)
- Keycloak 26.7.3 (`quay.io/keycloak/keycloak:26.7.3`, Quarkus; Standard
Token Exchange GA since 26.2 — EP-01-T01/EP-07)
- `opentelemetry-collector-contrib` 0.114.0 and `jaeger` (all-in-one) 1.62.0
(`observability` profile of `docker-compose.yml`, EP-08-T04)
None of the versions above have changed since the original confirmation — this
record is the single source of truth that `RI/README.md` links back to.