Technology Architecture · TOGAF ADM Phase D
EA Studio · Tech Stack & Ingredients
A TOGAF-aligned inventory of every technology component powering EA Studio, organized by architecture layer, with ownership, cost model, dependency classification, and security posture for each ingredient.
Framed against TOGAF ADM Phase D (Technology Architecture) — the layer that governs which platforms, products, and standards underpin application and data components.
Python packages
47
Runtime dependencies
CrewAI crews
5
Lane B committee debates
Agents per run
8
Advocates + guardrails + judge
Cloud services
5
Azure infra components
TOGAF Architecture Layer Legend
Column headers align to TOGAF Technology Portfolio Catalog attributes: Component · Version / Standard · Role · Ownership · Status (TOGAF lifecycle) · Cost Model · Key Dependency · Security Classification (extended, from TOGAF Security Architecture). Status: Active = current standard; Retiring = replacement planned; Planned = targeted for adoption.
Application Platform · TOGAF Phase D
Application Platform
Core runtime framework and API surface. All components are open-source and pinned in pyproject.toml.
| Component | Version / Standard | Role | Ownership | Status | Cost Model | Key Dependency | Security |
|---|---|---|---|---|---|---|---|
| Python | 3.12 | Runtime language — all business logic, agents, and web serving | Open Source | Active | Free | Docker base image | Public |
| FastAPI | ≥ 0.111 | Web framework — routes, request/response, SSE streaming, background tasks | Open Source | Active | Free | Starlette, Uvicorn | Internal |
| Uvicorn | ≥ 0.29 | ASGI server — production HTTP server with uvloop and httptools | Open Source | Active | Free | Python 3.12 | Internal |
| Jinja2 | ≥ 3.1 | Template engine — all HTML page rendering server-side | Open Source | Active | Free | MarkupSafe | Internal |
| Typer | ≥ 0.9 | CLI framework — ea-studio command with all subcommands | Open Source | Active | Free | Click | Internal |
| Pydantic / pydantic-settings | v2 | Data validation and settings management from .env | Open Source | Active | Free | Python | Internal |
| HTMX | 2.0.3 | Browser-side form-to-server AJAX without JavaScript build step | Open Source (CDN) | Active | Free | CDN delivery | Public |
| Tailwind CSS | CDN (dev) | Utility CSS — all page styling via class composition | Open Source (CDN) | Retiring | Free | CDN delivery | Public |
AI / Intelligence Services · TOGAF Phase D
AI and Intelligence Services
The deliberative and generative AI stack. LiteLLM abstracts the model endpoint so any OpenAI-compatible provider can be swapped with an env var.
| Component | Version / Standard | Role | Ownership | Status | Cost Model | Key Dependency | Security |
|---|---|---|---|---|---|---|---|
| CrewAI | 0.86 – 1.15 | Multi-agent orchestration framework — Lane B committee debates with advocate + guardrails + judge crews | Open Source | Active | Free (framework); LLM calls billed separately | LiteLLM, Python 3.12 < 3.14 | Internal |
| LiteLLM | ≥ 1.40 | LLM router — single call surface for NVIDIA NIM, OpenAI, Anthropic, DeepSeek, Gemini, and others | Open Source | Active | Free (proxy); token cost per provider | OPENAI-compatible endpoint | Sensitive |
| NVIDIA NIM (default) | Free tier | Inference endpoint — Llama 3.3 70B (LLM) and Llama 3.1 8B (SLM); 150+ models on one API key | NVIDIA (SaaS) | Active | Free tier (rate-limited); pay-as-you-go above quota | NVIDIA_NIM_API_KEY | Sensitive |
| ChromaDB | ≥ 0.5 | Vector store — local RAG index for corpus grounding; offline-capable | Open Source | Active | Free (self-hosted) | sentence-transformers, SQLite | Internal |
| all-MiniLM-L6-v2 | HuggingFace | Embedding model — offline sentence encoding for RAG retrieval | Open Source | Active | Free (local inference) | sentence-transformers, ONNX runtime | Internal |
| LLM intent classifier | Built-in | Lane router — keyword-first with optional SLM tiebreaker to assign Lane A or Lane B | EA Studio (custom) | Active | Free (keyword); SLM token cost when tiebreaker fires | LiteLLM, active SLM | Internal |
Data & Persistence · TOGAF Phase D
Data and Persistence
All state is local-first and portable. The provenance ledger is a hash-chained SQLite file; the RAG index is a local ChromaDB directory.
| Component | Version / Standard | Role | Ownership | Status | Cost Model | Key Dependency | Security |
|---|---|---|---|---|---|---|---|
| SQLite (provenance ledger) | 3.x | Tamper-evident run ledger — hash-chained records with token cost, model, artifact path, and HITL flag | Open Source (stdlib) | Active | Free | Python sqlite3 (stdlib) | Sensitive |
| ChromaDB (RAG index) | ≥ 0.5 | Persistent vector store for corpus documents; re-indexed on ea-studio index-corpus | Open Source | Active | Free | Chroma on-disk storage | Internal |
| JSON (artifacts) | stdlib | Provenance sidecar files — .provenance.json per artifact with hash, model, sources, cost | Open Source (stdlib) | Active | Free | Python json (stdlib) | Internal |
| Markdown / MADR 3.0 | MADR 3.0 | Primary artifact format — all ADRs and architecture outputs in machine-parseable MADR format | Open Standard | Active | Free | Jinja2 templates | Internal |
| PyYAML | ≥ 6.0 | TOGAF principles config and agent identity blueprint parsing | Open Source | Active | Free | Python | Internal |
Infrastructure & Compute · TOGAF Phase D
Infrastructure and Compute
Production deployment on Azure Container Apps (East US 2). All infrastructure is defined in deploy scripts with managed identity and HTTPS via Cloudflare.
| Component | Version / Standard | Role | Ownership | Status | Cost Model | Key Dependency | Security |
|---|---|---|---|---|---|---|---|
| Docker (python:3.12-slim) | 3.12-slim | Base image — bakes source, corpus, decisions, and templates; runs Uvicorn at startup | Open Source | Active | Free | Azure Container Registry | Internal |
| Azure Container Apps | Managed | Serverless container hosting — auto-scale, managed cert, blue-green revision swap | Microsoft Azure (SaaS) | Active | Consumption-based; ~$5–15/mo at low traffic | Azure subscription | Internal |
| Azure Container Registry | Basic tier | Private image registry — ACR build cloud-side; geo-redundant storage | Microsoft Azure (SaaS) | Active | ~$5/mo (Basic tier) | az cli, Azure subscription | Internal |
| Cloudflare DNS | Free tier | DNS resolution and TLS termination for eastudio.davidar.org | Cloudflare (SaaS) | Active | Free tier | Domain registration | Public |
| GitHub | git + Actions | Source control, CI (visual-standards + issue-intake workflows), rollback via git history | Microsoft GitHub (SaaS) | Active | Free (public repo) | git | Internal |
Presentation · TOGAF Phase D
Presentation Layer
Server-rendered HTML with zero npm dependencies. No React, no bundler — vanilla JS and HTMX handle all interactivity.
| Component | Version / Standard | Role | Ownership | Status | Cost Model | Key Dependency | Security |
|---|---|---|---|---|---|---|---|
| Jinja2 templates | ≥ 3.1 | Server-side HTML rendering for all pages — index, intelligence, under-the-hood, history, tech-stack | Open Source | Active | Free | FastAPI, Python | Internal |
| Inter (font) | Google Fonts CDN | Primary typeface — all body and UI text; loaded via Google Fonts CDN | Open Source (SIL OFL) | Active | Free | CDN delivery | Public |
| JetBrains Mono (font) | Google Fonts CDN | Monospace font for code, model names, cost figures, and provenance hashes | Open Source (OFL) | Active | Free | CDN delivery | Public |
| Mermaid.js | ≥ 11 (CDN) | ArchiMate and diagram rendering in ADR visual companion blocks | Open Source (CDN) | Active | Free | CDN delivery | Public |
| Alpine.js | 3.14 (CDN) | Lightweight stateful bits — sidebar toggle and collapsible panels | Open Source (CDN) | Active | Free | CDN delivery | Public |
| Reportlab / python-docx / python-pptx | Latest | Server-side export rendering — PDF, DOCX, and PPTX artifact downloads | Open Source | Active | Free | Python | Internal |
Governance & Security · TOGAF Phase D
Governance and Security
Built-in governance controls: MADR schema validation, WAF pillar checks, SHA-256 hash chain, HITL escalation, and cost metering on every run.
| Component | Version / Standard | Role | Ownership | Status | Cost Model | Key Dependency | Security |
|---|---|---|---|---|---|---|---|
| SHA-256 hash chain | Built-in | Tamper-evident provenance ledger — each run links to prior hash; verify-chain CLI command | EA Studio (custom) | Active | Free | Python hashlib (stdlib) | Sensitive |
| MADR 3.0 validator | Built-in | Schema enforcement — rejects malformed ADRs before they enter the ledger | EA Studio (custom) | Active | Free | PyYAML, regex | Internal |
| WAF pillar validator | Built-in | Well-Architected Framework checks — Reliability, Security, Cost, Operational Excellence, Performance | EA Studio (custom) | Active | Free | Python | Internal |
| HITL escalation | Built-in | Human-in-the-loop flag — ProvenanceRecord.hitl_required triggers red banner and Exit(2) | EA Studio (custom) | Active | Free | SQLite ledger | Sensitive |
| FinOps cost meter | Built-in | Per-run token cost and model cost attribution; cost-report CLI; RATES_AS_OF pinned snapshot | EA Studio (custom) | Active | Free | LiteLLM usage data | Internal |
| TOGAF principles validator | Built-in | Cross-references generated artifacts against TOGAF architecture principles and appends compliance section | EA Studio (custom) | Active | Free | PyYAML, decisions/ | Internal |
AI Agent Architecture · TOGAF Application Component Catalog
CrewAI Agent Roster
Every agent that can participate in a Lane B Committee Debate run. Each crew fields N option-advocate agents + 1 guardrails reviewer + 1 judge — all powered by the active LLM model.
Committee Debate (Lane B)
Framework Selection Committee
Debates which agentic orchestration framework the enterprise should standardize on. Each advocate defends one framework with a WAF-weighted scorecard.
Option Advocate (×6)
Build the strongest possible case for one framework across all scorecard dimensions
AdvocateResponsible-AI / IAM / Observability Reviewer
Flag ethical, access-control, and observability blind spots in each option's case
GuardrailsEnterprise Architecture Judge
Synthesize advocate cases and guardrails findings into a weighted JSON scorecard and recommendation
JudgeOptions debated: LangGraph, AutoGen, CrewAI, Semantic Kernel, Dapr Workflow, LlamaIndex Workflows
Scorecard dimensions: 8 (reliability, scalability, ops complexity, vendor lock-in, cost, skills, security, ecosystem)
Output artifact: Weighted scorecard ADR with recommendation and dissent log
Committee Debate (Lane B)
Migration Study Committee
Debates the optimal Azure compute target for a workload migration. Advocates cover the full Azure compute spectrum from serverless to VMs.
Migration Target Advocate (×5)
Champion one Azure compute target with evidence on cost, effort, risk, and fit
AdvocateResponsible-AI / IAM / Observability Reviewer
Surface security, identity, and observability gaps in each migration path
GuardrailsEnterprise Architecture Judge
Produce a weighted migration scorecard with ranked recommendation
JudgeOptions debated: Azure Functions, Azure Container Apps, App Service, AKS, Virtual Machines
Scorecard dimensions: 8 (cost, scalability, ops burden, migration effort, vendor lock-in, security, performance, resilience)
Output artifact: Migration study ADR with target recommendation and rollback considerations
Committee Debate (Lane B)
Landing Zone Advisor Committee
Debates which Azure network and governance topology best fits the enterprise workload. Covers connectivity, security posture, and multi-region readiness.
Topology Advocate (×6)
Make the case for one landing zone topology against all scorecard criteria
AdvocateResponsible-AI / IAM / Observability Reviewer
Assess zero-trust readiness, identity boundaries, and compliance implications per topology
GuardrailsEnterprise Architecture Judge
Synthesize topology debate into a governance-ready landing zone ADR
JudgeOptions debated: Traditional hub-spoke, Azure Virtual WAN, Azure Landing Zones (ALZ), Multi-region ALZ, Flat single-subscription, Sovereign Landing Zone
Scorecard dimensions: 8 (connectivity, security, multi-region, governance, IAM, cost, ops model, day-2 ops)
Output artifact: Landing zone recommendation ADR with trade-off scorecard
Committee Debate (Lane B)
Integration Pattern Selector Committee
Debates which enterprise integration pattern best fits a given workload coupling requirement. Covers the full event-driven to synchronous spectrum.
Pattern Advocate (×6)
Champion one integration pattern with evidence on fit, trade-offs, and implementation cost
AdvocateResponsible-AI / IAM / Observability Reviewer
Flag security, data-lineage, and observability concerns per pattern
GuardrailsEnterprise Architecture Judge
Produce a weighted pattern scorecard with recommended approach
JudgeOptions debated: Event-driven (pub-sub), Request-reply (REST), Choreography (saga), Orchestration (workflow), Streaming (Kafka/Event Hubs), Batch ETL
Scorecard dimensions: 8 (coupling, latency, throughput, error handling, ops complexity, cost, resilience, observability)
Output artifact: Integration pattern ADR with scorecard and implementation guidance
Committee Debate (Lane B)
RAG Pattern Selector Committee
Debates which retrieval-augmented generation architecture best fits a given knowledge-grounding requirement. Covers from naive RAG to graph-based retrieval.
RAG Pattern Advocate (×6)
Build the strongest case for one RAG architecture across accuracy, cost, and operational fit
AdvocateResponsible-AI / IAM / Observability Reviewer
Assess citation quality, data provenance, and responsible-AI controls per RAG pattern
GuardrailsEnterprise Architecture Judge
Synthesize retrieval debate into a scored RAG architecture recommendation
JudgeOptions debated: Naive RAG (vector only), Hybrid RAG (keyword + vector), GraphRAG (graph-grounded), Re-ranking RAG, Self-RAG (reflective), Agentic RAG
Scorecard dimensions: 8 (retrieval fidelity, hallucination risk, latency, cost, knowledge freshness, ops burden, security, scalability)
Output artifact: RAG architecture ADR with pattern recommendation and evaluation criteria
TOGAF Principle Alignment
How This Stack Upholds Architecture Principles
Technology Independence
TOGAF 9.2 §23.6
LiteLLM abstracts all LLM providers behind one interface — swap NVIDIA NIM for OpenAI or Anthropic with a single env var. ChromaDB is swappable by changing EA_STUDIO_RAG_INDEX_DIR.
Ease of Use
TOGAF 9.2 §23.8
Zero npm, no bundler, no build step — server-rendered HTML + HTMX. A single `ea-studio ui` command launches the full system. Tailwind CDN for development, compiled CSS for production.
Managed Change
TOGAF 9.2 §23.4
Every run is hash-chained into a tamper-evident SQLite ledger. HITL escalation flags uncertain outputs before they enter the corpus. verify-chain CLI confirms integrity at any time.
Data is an Asset
TOGAF 9.2 §23.9
All artifacts carry provenance sidecars (.provenance.json) with model, cost, sources, and hash. The learning loop captures approved outputs as reusable precedent for future runs.
Security and Compliance
TOGAF 9.2 §23.7
MADR schema validation and WAF pillar checks run on every artifact. TOGAF principles cross-referencing appends a compliance section to each output. API keys are env-var isolated.
Interoperability
TOGAF 9.2 §23.5
Artifacts are MADR 3.0 Markdown — readable by humans and parseable by tooling. ArchiMate .puml and .mmd companions export to any architecture modeling tool. RSS feed exposes intelligence outputs.