--- title: "How to Create Architecture" description: How to create system architecture using the BMad Method --- Use the `architecture` workflow to make technical decisions explicit and prevent agent conflicts during implementation. --- ## When to Use This - Multi-epic projects (BMad Method, Enterprise) - Cross-cutting technical concerns - Multiple agents implementing different parts - Integration complexity exists - Technology choices need alignment --- ## When to Skip This - Quick Flow (simple changes) - BMad Method Simple with straightforward tech stack - Single epic with clear technical approach --- ## Prerequisites - BMad Method installed - Architect agent available - PRD completed --- ## Steps ### 1. Load the Architect Agent Start a fresh chat and load the Architect agent. ### 2. Run the Architecture Workflow ``` *create-architecture ``` ### 3. Engage in Discovery This is NOT a template filler. The architecture workflow: 1. **Discovers** technical needs through conversation 2. **Proposes** architectural options with trade-offs 3. **Documents** decisions that prevent agent conflicts 4. **Focuses** on decision points, not exhaustive documentation ### 4. Document Key Decisions Work with the agent to create Architecture Decision Records (ADRs) for significant choices. ### 5. Review the Architecture The agent produces a decision-focused architecture document. --- ## What You Get An `architecture.md` document containing: 1. **Architecture Overview** - System context, principles, style 2. **System Architecture** - High-level diagram, component interactions 3. **Data Architecture** - Database design, state management, caching 4. **API Architecture** - API style (REST/GraphQL/gRPC), auth, versioning 5. **Frontend Architecture** - Framework, state management, components 6. **Integration Architecture** - Third-party integrations, messaging 7. **Security Architecture** - Auth/authorization, data protection 8. **Deployment Architecture** - CI/CD, environments, monitoring 9. **ADRs** - Key decisions with context, options, rationale 10. **FR/NFR-Specific Guidance** - Technical approach per requirement 11. **Standards and Conventions** - Directory structure, naming, testing --- ## ADR Format ```markdown ## ADR-001: Use GraphQL for All APIs **Status:** Accepted | **Date:** 2025-11-02 **Context:** PRD requires flexible querying across multiple epics **Decision:** Use GraphQL for all client-server communication **Options Considered:** 1. REST - Familiar but requires multiple endpoints 2. GraphQL - Flexible querying, learning curve 3. gRPC - High performance, poor browser support **Rationale:** - PRD requires flexible data fetching (Epic 1, 3) - Mobile app needs bandwidth optimization (Epic 2) - Team has GraphQL experience **Consequences:** - Positive: Flexible querying, reduced versioning - Negative: Caching complexity, N+1 query risk - Mitigation: Use DataLoader for batching ``` --- ## Example E-commerce platform produces: - Monolith + PostgreSQL + Redis + Next.js + GraphQL - ADRs explaining each choice - FR/NFR-specific implementation guidance --- ## Tips - Focus on decisions that prevent agent conflicts - Use ADRs for every significant technology choice - Keep it practical - don't over-architect - Architecture is living - update as you learn --- ## Next Steps After architecture: 1. **Create Epics and Stories** - Work breakdown informed by architecture 2. **Implementation Readiness** - Gate check before Phase 4 --- ## Related - [Create PRD](./create-prd.md) - Requirements before architecture - [Create Epics and Stories](./create-epics-and-stories.md) - Next step - [Run Implementation Readiness](./run-implementation-readiness.md) - Gate check - [Why Solutioning Matters](../../explanation/architecture/why-solutioning-matters.md)