Template Instructions: Replace all
[placeholder text]with your project-specific information. Remove these instruction blocks when complete.
[Provide a 2-3 sentence high-level description of what this system does and why it exists. Focus on the business problem it solves.]
Key Facts:
- Purpose: [Primary business purpose]
- Users: [Target user groups]
- Scale: [Expected usage: users, requests/day, data volume]
- Status: [Development/Staging/Production]
[Explain the business problem this system solves. What value does it provide?]
In Scope:
- [Feature/capability 1]
- [Feature/capability 2]
- [Feature/capability 3]
Out of Scope:
- [What this system explicitly does NOT do]
- [Related systems that handle other concerns]
| System | Purpose | Integration Method | Criticality |
|---|---|---|---|
| [External API Name] | [What it provides] | [REST/GraphQL/etc] | [High/Medium/Low] |
| [Database Service] | [Data storage] | [Connection type] | [High/Medium/Low] |
| [Auth Provider] | [Authentication] | [OAuth/SAML/etc] | [High/Medium/Low] |
[Insert architecture diagram here - can be ASCII art or link to image]
Example:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Client │────────>│ Backend │────────>│ Database │
│ (React App) │ HTTPS │ (Node.js) │ SQL │ (PostgreSQL)│
└─────────────┘ └─────────────┘ └─────────────┘
│
│ REST API
▼
┌─────────────┐
│ External │
│ API │
└─────────────┘
[Describe the overall architecture pattern: Monolithic, Microservices, Serverless, Event-Driven, etc.]
Rationale: [Why this pattern was chosen - consider scalability, team size, complexity, etc.]
Purpose: [What this component does] Technology: [Language/Framework] Responsibilities:
- [Responsibility 1]
- [Responsibility 2]
Key Interfaces:
- [API endpoints, events, or contracts]
Purpose: [What this component does] Technology: [Language/Framework] Responsibilities:
- [Responsibility 1]
- [Responsibility 2]
Key Interfaces:
- [API endpoints, events, or contracts]
Purpose: [What this component does] Technology: [Language/Framework] Responsibilities:
- [Responsibility 1]
- [Responsibility 2]
Key Interfaces:
- [API endpoints, events, or contracts]
| Layer | Technology | Version | Purpose |
|---|---|---|---|
| Frontend | [React/Vue/Angular] | [x.x.x] | [UI framework] |
| Backend | [Node.js/Python/Java] | [x.x.x] | [API server] |
| Mobile | [React Native/Flutter] | [x.x.x] | [Mobile apps] |
| Component | Technology | Purpose |
|---|---|---|
| Hosting | [AWS/Azure/GCP] | [Cloud provider] |
| Container Runtime | [Docker/Kubernetes] | [Container orchestration] |
| CI/CD | [GitHub Actions/Jenkins] | [Build and deployment] |
| Monitoring | [DataDog/NewRelic] | [System observability] |
| Store | Technology | Purpose | Data Type |
|---|---|---|---|
| Primary Database | [PostgreSQL/MySQL] | [Transactional data] | [Structured] |
| Cache | [Redis/Memcached] | [Performance] | [Key-value] |
| File Storage | [S3/Blob Storage] | [Media files] | [Unstructured] |
| Search | [Elasticsearch] | [Full-text search] | [Indexed documents] |
-
[Step 1]: [Description of what happens first]
- [Technical details]
-
[Step 2]: [Next step in the flow]
- [Technical details]
-
[Step 3]: [Final step]
- [Technical details]
[Describe how data moves through the system from input to storage]
Example:
User Input → Validation → Business Logic → Data Access Layer → Database
↓
Error Handling → User Feedback
[Describe any event-driven architecture patterns]
Event Producer → Message Queue → Event Consumer → Side Effects
Authentication Method: [OAuth 2.0/JWT/Session-based/etc.] Authorization Pattern: [RBAC/ABAC/ACL]
Key Security Controls:
- [Control 1: e.g., All API requests require authentication]
- [Control 2: e.g., Role-based access to sensitive endpoints]
- [Control 3: e.g., Data encryption at rest and in transit]
[Describe trust boundaries and how data crosses them]
- [Compliance standard 1: e.g., GDPR, SOC 2, HIPAA]
- [Compliance standard 2]
| Environment | Purpose | URL | Deployment Frequency |
|---|---|---|---|
| Development | [Local dev] | [localhost] | [Continuous] |
| Staging | [Pre-production testing] | [staging.example.com] | [Daily] |
| Production | [Live system] | [example.com] | [Weekly] |
[Insert deployment architecture diagram]
Example:
┌─────────────────────────────────────────────┐
│ Load Balancer │
└───────────────┬─────────────────────────────┘
│
┌───────┴───────┐
│ │
┌───────▼──────┐ ┌──────▼──────┐
│ Web Server │ │ Web Server │ (Auto-scaled)
│ Instance │ │ Instance │
└───────┬──────┘ └──────┬──────┘
│ │
└───────┬───────┘
│
┌───────▼────────┐
│ Database │
│ (Primary) │
└────────────────┘
Horizontal Scaling:
- [Components that scale horizontally]
Vertical Scaling:
- [Components that scale vertically]
Auto-scaling Triggers:
- [Metric 1: e.g., CPU > 70%]
- [Metric 2: e.g., Request queue depth > 100]
| Metric | Target | Current | Notes |
|---|---|---|---|
| API Response Time (p95) | [< 200ms] | [150ms] | [Under normal load] |
| Throughput | [1000 req/s] | [800 req/s] | [Peak capacity] |
| Database Query Time (p95) | [< 50ms] | [40ms] | [Most common queries] |
| Uptime | [99.9%] | [99.95%] | [Last 30 days] |
- [Key performance consideration 1]
- [Key performance consideration 2]
- [Known bottlenecks]
Failure Scenarios:
- [Component] Failure: [How system handles this]
- [External Service] Outage: [Fallback strategy]
- [Network] Issues: [Retry logic, circuit breakers]
Backup Strategy:
- [What is backed up]
- [Backup frequency]
- [Retention period]
Recovery Objectives:
- RTO (Recovery Time Objective): [Maximum acceptable downtime]
- RPO (Recovery Point Objective): [Maximum acceptable data loss]
Key Metrics:
- [Metric 1: What is monitored]
- [Metric 2: What is monitored]
Alert Thresholds:
- [Critical: When to page on-call]
- [Warning: When to investigate]
Decision: [What was decided] Rationale: [Why this decision was made] Trade-offs:
- ✅ [Benefit 1]
- ✅ [Benefit 2]
- ❌ [Drawback 1]
Decision: [What was decided] Rationale: [Why this decision was made] Trade-offs:
- ✅ [Benefit 1]
- ✅ [Benefit 2]
- ❌ [Drawback 1]
[Document known technical debt and future refactoring needs]
- [Debt Item 1]
- Issue: [What's wrong]
- Impact: [How it affects the system]
- Plan: [When/how to address]
[List planned architectural improvements - avoid time estimates, focus on priorities]
High Priority:
- [Improvement 1]
- [Improvement 2]
Medium Priority:
- [Improvement 3]
- [Improvement 4]
Under Consideration:
- [Future direction 1]
- [Future direction 2]
[How will the architecture evolve as the system grows?]
| Term | Definition |
|---|---|
| [Technical term 1] | [Definition] |
| [Technical term 2] | [Definition] |
- [Link to API Documentation]
- [Link to Deployment Guide]
- [Link to Security Documentation]
- [Link to Data Model Documentation]
[If using tools like draw.io, PlantUML, Mermaid, provide source or links to editable versions]
Document Information:
- Last Updated: [Date]
- Authors: [Names]
- Version: [x.x]
- Next Review Date: [Date]