Cloud architecture design tool for generating production-grade deliverables β diagrams, documents, and PDF reports.
Architect combines a structured knowledge library with an interactive design workflow to produce comprehensive architecture documentation for cloud infrastructure projects.
- Conversational architecture design β LLM-powered chat interface with tool-call loop for creating artifacts, recording decisions, and managing questions, backed by RAG over the knowledge library
- Architectural Decision Records (ADRs) β every design decision is documented with context, decision, and consequences
- Question tracking β clarifying questions are tracked per project with status and category
- Diagram generation β Python
diagramslibrary (AWS, Azure, GCP, Nutanix, VMware, OpenStack icons) and D2 for flexible layouts - Document rendering β Markdown to styled HTML with diagram embedding
- PDF export β professional reports with cover page, table of contents, and embedded diagrams
- Knowledge library β 330+ markdown files covering 45+ providers, architecture patterns, compliance frameworks, certifications, and training resources
- Coverage tracking β track which knowledge library checklist items have been addressed in the design
- Inventory management β attach VM inventories, network data, and analysis to versions
- File uploads β attach reference documents and data files to versions
- Vector search (RAG) β semantic search over the knowledge library, vendor docs, and uploaded files using pgvector embeddings, with a web UI for index management (start, stop, pause, resume, clear, timeout, progress tracking)
- MCP server β public
@eevenson/architect-knowledge-mcpnpm package exposes the knowledge library to Claude Desktop, Claude Code, Cursor, and any MCP-compatible client
The knowledge library is available as a standalone MCP server for use with any MCP-compatible client. No deployment needed β it runs locally via npx:
{
"mcpServers": {
"architect-knowledge": {
"command": "npx",
"args": ["@eevenson/architect-knowledge-mcp"]
}
}
}Three tools are exposed: search_knowledge, list_categories, and read_file. The server fetches knowledge files from this public repo and caches them locally. No client data is ever included.
See the architect-knowledge-mcp repo for full documentation.
| Layer | Technology |
|---|---|
| Backend | FastAPI + Uvicorn (Python 3.12) |
| Chat/LLM | SSE streaming, OpenAI-compatible API (local or Anthropic) |
| Frontend | React + Vite + TypeScript + Tailwind CSS |
| Database | PostgreSQL 16 + pgvector (K8s StatefulSet) |
| Vector Search | pgvector + ONNX Runtime (all-MiniLM-L6-v2) |
| Diagrams | Python diagrams + D2 |
| PDFs | WeasyPrint + Jinja2 |
| Migrations | Alembic |
| Deployment | Kubernetes + Kustomize |
- Docker Desktop with Kubernetes enabled
mkcertinstalledkubectlconfigured
# Build images
scripts/build-images.sh
# Set up namespace, TLS, and secrets
kubectl create namespace architect-dev
scripts/setup-tls.sh architect-dev
scripts/create-secrets.sh architect-dev
# Deploy
scripts/deploy-k8s.sh architect-dev
# Run database migrations
kubectl apply -f k8s/base/migration-job.yaml -n architect-dev- Frontend: https://localhost:30011
- API docs: http://localhost:30010/docs
architect/
βββ services/
β βββ backend/ # FastAPI application
β β βββ src/
β β β βββ api/ # REST API routers
β β β βββ models/ # SQLAlchemy ORM models
β β β βββ schemas/ # Pydantic request/response schemas
β β β βββ services/ # Business logic
β β β βββ rendering/# Diagram, D2, Markdown, PDF renderers
β β β βββ templates/# Jinja2 templates (PDF, documents)
β β βββ tests/ # pytest test suite
β βββ frontend/ # React SPA
β βββ src/
β βββ api/ # API client and types
β βββ components/# UI components
β βββ pages/ # Route pages
β βββ stores/ # Zustand state
βββ knowledge/ # Architecture knowledge library (330+ files)
β βββ general/ # Universal concerns
β βββ providers/ # Provider-specific (30+ vendors: AWS, Azure, GCP, Nutanix, VMware, etc.)
β βββ patterns/ # Architecture patterns (three-tier, microservices, etc.)
β βββ compliance/ # Compliance frameworks (PCI, HIPAA, SOC2, FedRAMP)
β βββ frameworks/ # Well-Architected Frameworks
β βββ failures/ # Anti-patterns and failure modes
βββ specs/ # Specifications (architecture, API, behavior)
βββ db/ # Alembic migrations
βββ k8s/ # Kubernetes manifests (Kustomize)
β βββ base/
β βββ infrastructure/
β βββ services/
β βββ overlays/ # local-dev, staging
βββ scripts/ # Build, deploy, and utility scripts
Client (1) β (*) Project (1) β (*) Version (1) β (*) Artifact
(1) β (*) ADR
(1) β (*) Question
(1) β (*) InventoryItem
(1) β (*) Upload
(1) β (*) CoverageItem
- Client β organization the architecture is for
- Project β specific architecture engagement
- Version β architecture iteration (semver), each version is an independent design
- Artifact β diagram, document, or PDF report
- ADR β architectural decision record (sequential per version)
- Question β clarifying question with status and category
- InventoryItem β VM inventory, network data, or analysis attached to a version
- Upload β reference documents and files (PVC-backed, 100MB limit)
- CoverageItem β tracks which knowledge library checklist items are addressed
- KnowledgeEmbedding β vector embedding of a knowledge library chunk
Architect uses Retrieval-Augmented Generation (RAG) to enhance the knowledge library with semantic search. This runs alongside the existing rule-based file loading β not as a replacement.
Knowledge Files (330+ .md) Vendor Docs (550+ URLs) Uploaded Files
β β β
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β Markdown Parser β β Concurrent Fetch β β Text Extraction β
β Extract items β β (20 parallel) β β .md .txt .csv β
β per checklist β β Paragraph Chunk β β .json .yaml etc β
βββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β β β
βββββββββββββββββββββββββΌβββββββββββββββββββββββββ
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β all-MiniLM-L6-v2 (ONNX Runtime) β
β 384-dimensional normalized embeddings β
β Parallel threads, pipelined DB writes β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PostgreSQL 16 + pgvector β
β knowledge_embeddings table with HNSW cosine index β
β Content-hash deduplication for incremental reindex β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Retrieval (dual strategy) β
β β
β 1. Rule-based: load all files for active provider, β
β pattern, and compliance scope (guarantees no β
β Critical items are missed) β
β β
β 2. Vector search: cosine similarity against query β
β text, surfaces related items from NON-loaded β
β files (cross-cutting discovery) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Integration Points β
β β
β β’ After Q&A pairs β inline suggestions in response β
β β’ After rule-based loading β additional file recs β
β β’ During artifact generation β cross-references β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Component | Technology | Purpose |
|---|---|---|
| Vector store | pgvector (PostgreSQL extension) | Store and query 384-dim embeddings via HNSW index |
| Embedding model | all-MiniLM-L6-v2 (ONNX Runtime) |
Generate embeddings locally with parallel threads, no external API |
| Chunking | Custom markdown parser | Extract individual checklist items with [Critical]/[Recommended]/[Optional] tags |
| Indexing | Background task with web UI controls | Start, stop, pause, resume, clear, configurable timeout, real-time progress |
| Data sources | Knowledge files + vendor docs + uploads | Indexes all three sources; vendor docs fetched concurrently (20 parallel) |
| Search | Cosine similarity with min-score filter | Configurable top-k, file exclusion, priority filtering |
| Suggestions | Inline in API responses | suggestions array on question responses when answers are provided |
| Decision | Choice | Why |
|---|---|---|
| Vector store | pgvector in existing PostgreSQL | No new infrastructure; single database for all data |
| Embedding runtime | ONNX Runtime (not PyTorch) | ~300 MB RAM vs ~3 GB; parallel thread support; no CUDA dependency |
| Chunk granularity | Individual checklist items | Matches the workflow's unit of work (one question per item) |
| Indexing model | Background task with server-side state | Progress survives page navigation; supports pause/resume/cancel |
| Vendor doc fetching | 20-way concurrent with semaphore | Reduces fetch phase from minutes to seconds |
| Embedding pipeline | Pre-fetch next batch during DB commit | Overlaps CPU-bound inference with I/O-bound writes |
| Deduplication | SHA-256 content hash | Only re-embeds changed chunks on reindex |
| Fallback | Graceful degradation | If embeddings aren't indexed, suggestions are empty β never errors |
| Dual retrieval | Rule-based primary + vector secondary | Rules guarantee completeness; vectors add discovery |
| Endpoint | Method | Purpose |
|---|---|---|
/knowledge/search |
POST | Semantic search with query, top-k, min-score, file exclusion, priority filter |
/knowledge/search |
GET | Search via query params (fetch-only clients) |
/knowledge/reindex |
POST | Start background reindex (knowledge files, vendor docs, uploads) |
/knowledge/reindex/status |
GET | Index status, background task state, and progress |
/knowledge/reindex/stop |
POST | Cancel a running reindex |
/knowledge/reindex/pause |
POST | Pause a running reindex between batches |
/knowledge/reindex/resume |
POST | Resume a paused reindex |
/knowledge/reindex/clear |
POST | Delete all embeddings from the index |
/knowledge/reindex/timeout |
POST | Set or clear the reindex timeout |
All endpoints under /api/v1/. See full OpenAPI spec at /docs when running.
| Resource | Endpoints |
|---|---|
| Clients | CRUD at /clients |
| Projects | CRUD at /clients/{id}/projects |
| Versions | CRUD at /projects/{id}/versions |
| Artifacts | CRUD + clone at /versions/{id}/artifacts |
| ADRs | CRUD at /versions/{id}/adrs |
| Questions | CRUD + filter at /versions/{id}/questions |
| Inventory | CRUD at /versions/{id}/inventory |
| Uploads | Upload/download/delete at /versions/{id}/uploads |
| Coverage | CRUD + summary at /versions/{id}/coverage |
| Rendering | Trigger + outputs + PDF export at /versions/{id}/artifacts/{id}/render |
| Chat | SSE streaming at /chat |
| Templates | List + render at /templates |
| Knowledge | Browse + vector search + reindex at /knowledge |
| Engine | Use Case | Output |
|---|---|---|
diagrams_py |
Cloud architecture with provider icons | SVG + PNG (300 DPI) |
d2 |
Sequence diagrams, flowcharts | SVG |
markdown |
Architecture documents | HTML |
weasyprint |
PDF reports |
The knowledge library drives the architecture design workflow. Files are organized by:
- General (65+ files) β compute, networking, data, security, observability, DR, cost, storage, identity, AI/ML services, ITSM, messaging patterns, supply chain security, performance testing, email migration, certification/training, and more
- Providers (230+ files) β 45+ vendors: AWS, Azure, GCP, Nutanix, VMware, OpenStack, OpenShift, Kubernetes, HashiCorp, Cisco, Dell, HPE, NetApp, Pure Storage, Snowflake, Databricks, Confluent/Kafka, MongoDB, Redis, Elasticsearch, Cassandra, CrowdStrike, Okta, CyberArk, Dynatrace, New Relic, GitLab, GitHub, Jenkins, ArgoCD, FluxCD, Cloudflare, RabbitMQ, Juniper, Arista, and more
- Patterns (30+ files) β three-tier web, microservices, hybrid cloud, zero trust, application modernization, security operations, hypervisor migration, datacenter relocation, managed cloud services, and more
- Compliance (12 files) β PCI DSS, HIPAA, SOC2, FedRAMP, GDPR, CCPA/CPRA, ISO 27001, NIST 800-171/CMMC, SOX, CSA CCM, CJIS, ITAR
- Frameworks (3 files) β AWS/Azure/GCP Well-Architected Framework review checklists
- Failures (5 files) β real-world anti-patterns for networking, data, scaling, security, and deployment
Browse the library in the UI via the Knowledge link in the header.
| Script | Purpose |
|---|---|
build-images.sh |
Build all Docker images |
deploy-k8s.sh |
Deploy to Kubernetes |
setup-tls.sh |
Generate mkcert TLS certificates |
create-secrets.sh |
Generate and install K8s secrets |
run-tests.sh |
Run all test suites |
bump-version.sh |
Bump service version |
cd services/backend
pip install -e ".[dev]" aiosqlite
pytest tests/ -v- Write/update specs in
specs/before implementation - Commit specs separately from implementation
- Write tests derived from specs (TDD)
- Implement to make tests pass
- Commit implementation with tests
| Directory | Contents |
|---|---|
specs/api/ |
OpenAPI 3.1 spec for all REST endpoints |
specs/architecture/ |
System design: services, chat/LLM, knowledge/embeddings, rendering, CI/CD, deployment |
specs/data/ |
Database schema: 11 tables with columns, indexes, constraints, cascade behavior |
specs/behavior/ |
Gherkin acceptance criteria: 13 feature files covering all user-facing features |
specs/rendering/ |
Rendering engine specs: D2, diagrams-py, markdown, PDF, icons |
MIT License. See LICENSE.