--- title: "Architecture Patterns Index" description: "Cross-cutting architectural decisions across Oliver Agency projects" tags: [index, architecture] created: 2026-04-15 updated: 2026-04-27 --- # Architecture Patterns Cross-cutting architectural decisions that appear in multiple Oliver projects. ## Patterns | Pattern | Description | Projects | |---------|-------------|---------| | [[wiki/architecture/docker-compose-fullstack\|docker-compose-fullstack]] | Standard multi-service Docker Compose deployment | ~20 projects | | [[wiki/architecture/multi-agent-ai-systems\|multi-agent-ai-systems]] | Parallel specialist agents + lead synthesizer | Mod Comms, Semblance, Enterprise Nexus | | [[wiki/architecture/gcp-deployment-lb-timeout\|gcp-deployment-lb-timeout]] | GCP 30s LB timeout — WebSocket → HTTP polling fix | Mod Comms, Semblance | | [[wiki/architecture/rag-architecture\|rag-architecture]] | RAG: Firecrawl → AI structuring → Qdrant → LLM synthesis | Enterprise Nexus, Sandbox NotebookLM | | [[wiki/architecture/hotfolder-daemon\|hotfolder-daemon]] | Box folder monitoring daemon with systemd | Ford QC, Ford SFTP | | [[wiki/architecture/optical-dev-server-deploy\|optical-dev-server-deploy]] | optical-dev Apache subpath pattern: single vhost, Include conf, port table, deploy script | All Oliver projects | | [[wiki/architecture/ai-cost-tracker\|ai-cost-tracker]] | Shared AI cost tracker: Docker Compose, Workspace→Team→Project, preflight/record HTTP API, LiteLLM pricing, hard budget limits | All Oliver projects | ## Key Architectural Decisions 1. **Docker Compose** — default deployment for all multi-service projects on optical-dev 2. **HTTP polling over WebSocket** — mandatory on GCP (30s LB timeout) 3. **AI pre-structuring before RAG indexing** — improves retrieval quality 4. **Hotfolder + archive pattern** — prevents reprocessing in Box automations 5. **DEV_AUTH_BYPASS / dev login** — skip Azure AD in local/dev environment, real auth in production 6. **Cost tracking as cross-cutting concern** — every AI call preflight+record via ai-cost-tracker