9.0 KiB
{{project_name}} Architecture Document
Introduction
This document outlines the overall project architecture for {{project_name}}, including backend systems, shared services, and technical implementation guidance. It serves as the architectural blueprint for development, ensuring consistency and adherence to chosen patterns and technologies.
Starter Template or Existing Project
{{starter_template_info}}
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| {{date}} | {{version}} | {{description}} | {{author}} |
High Level Architecture
Technical Summary
{{technical_summary}}
High Level Overview
{{architectural_overview}}
Project Diagram
{{project_diagram}}
Architectural and Design Patterns
- {{pattern_1_name}}: {{pattern_1_description}} - Rationale: {{pattern_1_rationale}}
- {{pattern_2_name}}: {{pattern_2_description}} - Rationale: {{pattern_2_rationale}}
- {{pattern_3_name}}: {{pattern_3_description}} - Rationale: {{pattern_3_rationale}}
Tech Stack
Cloud Infrastructure
- Provider: {{cloud_provider}}
- Key Services: {{core_services_list}}
- Deployment Regions: {{regions}}
Technology Stack Table
| Category | Technology | Version | Purpose | Rationale |
|---|---|---|---|---|
| Language | {{language}} | {{language_version}} | {{language_purpose}} | {{language_rationale}} |
| Runtime | {{runtime}} | {{runtime_version}} | {{runtime_purpose}} | {{runtime_rationale}} |
| Framework | {{framework}} | {{framework_version}} | {{framework_purpose}} | {{framework_rationale}} |
| Database | {{database}} | {{database_version}} | {{database_purpose}} | {{database_rationale}} |
| Testing | {{testing_framework}} | {{testing_version}} | {{testing_purpose}} | {{testing_rationale}} |
Data Models
{{model_1_name}}
Purpose: {{model_1_purpose}}
Key Attributes:
- {{model_1_attr_1}}: {{model_1_type_1}} - {{model_1_desc_1}}
- {{model_1_attr_2}}: {{model_1_type_2}} - {{model_1_desc_2}}
- {{model_1_attr_3}}: {{model_1_type_3}} - {{model_1_desc_3}}
Relationships:
- {{model_1_rel_1}}
- {{model_1_rel_2}}
{{model_2_name}}
Purpose: {{model_2_purpose}}
Key Attributes:
- {{model_2_attr_1}}: {{model_2_type_1}} - {{model_2_desc_1}}
- {{model_2_attr_2}}: {{model_2_type_2}} - {{model_2_desc_2}}
Relationships:
- {{model_2_rel_1}}
- {{model_2_rel_2}}
Components
{{component_1_name}}
Responsibility: {{component_1_description}}
Key Interfaces:
- {{component_1_interface_1}}
- {{component_1_interface_2}}
Dependencies: {{component_1_dependencies}}
Technology Stack: {{component_1_tech_details}}
{{component_2_name}}
Responsibility: {{component_2_description}}
Key Interfaces:
- {{component_2_interface_1}}
- {{component_2_interface_2}}
Dependencies: {{component_2_dependencies}}
Technology Stack: {{component_2_tech_details}}
Component Diagrams
{{component_diagram}}
External APIs
{{api_1_name}} API
- Purpose: {{api_1_purpose}}
- Documentation: {{api_1_docs_url}}
- Base URL(s): {{api_1_base_url}}
- Authentication: {{api_1_auth_method}}
- Rate Limits: {{api_1_rate_limits}}
Key Endpoints Used:
{{api_1_method_1}} {{api_1_endpoint_1}}- {{api_1_endpoint_1_purpose}}{{api_1_method_2}} {{api_1_endpoint_2}}- {{api_1_endpoint_2_purpose}}
Integration Notes: {{api_1_integration_notes}}
Core Workflows
{{core_workflow_diagram}}
REST API Spec
{{rest_api_specification}}
Database Schema
{{database_schema}}
Source Tree
{{project_folder_structure}}
Infrastructure and Deployment
Infrastructure as Code
- Tool: {{iac_tool}} {{iac_version}}
- Location:
{{iac_directory}} - Approach: {{iac_approach}}
Deployment Strategy
- Strategy: {{deployment_strategy}}
- CI/CD Platform: {{cicd_platform}}
- Pipeline Configuration:
{{pipeline_config_location}}
Environments
- {{env_1_name}}: {{env_1_purpose}} - {{env_1_details}}
- {{env_2_name}}: {{env_2_purpose}} - {{env_2_details}}
- {{env_3_name}}: {{env_3_purpose}} - {{env_3_details}}
Environment Promotion Flow
{{promotion_flow_diagram}}
Rollback Strategy
- Primary Method: {{rollback_method}}
- Trigger Conditions: {{rollback_triggers}}
- Recovery Time Objective: {{rto}}
Error Handling Strategy
General Approach
- Error Model: {{error_model}}
- Exception Hierarchy: {{exception_structure}}
- Error Propagation: {{propagation_rules}}
Logging Standards
- Library: {{logging_library}} {{logging_version}}
- Format: {{log_format}}
- Levels: {{log_levels_definition}}
- Required Context:
- Correlation ID: {{correlation_id_format}}
- Service Context: {{service_context}}
- User Context: {{user_context_rules}}
Error Handling Patterns
External API Errors
- Retry Policy: {{retry_strategy}}
- Circuit Breaker: {{circuit_breaker_config}}
- Timeout Configuration: {{timeout_settings}}
- Error Translation: {{error_mapping_rules}}
Business Logic Errors
- Custom Exceptions: {{business_exception_types}}
- User-Facing Errors: {{user_error_format}}
- Error Codes: {{error_code_system}}
Data Consistency
- Transaction Strategy: {{transaction_approach}}
- Compensation Logic: {{compensation_patterns}}
- Idempotency: {{idempotency_approach}}
Coding Standards
Core Standards
- Languages & Runtimes: {{languages_and_versions}}
- Style & Linting: {{linter_config}}
- Test Organization: {{test_file_convention}}
Naming Conventions
| Element | Convention | Example |
|---|---|---|
| {{naming_element_1}} | {{naming_convention_1}} | {{naming_example_1}} |
| {{naming_element_2}} | {{naming_convention_2}} | {{naming_example_2}} |
Critical Rules
- {{rule_1_name}}: {{rule_1_description}}
- {{rule_2_name}}: {{rule_2_description}}
- {{rule_3_name}}: {{rule_3_description}}
Test Strategy and Standards
Testing Philosophy
- Approach: {{test_approach}}
- Coverage Goals: {{coverage_targets}}
- Test Pyramid: {{test_distribution}}
Test Types and Organization
Unit Tests
- Framework: {{unit_test_framework}} {{unit_test_version}}
- File Convention: {{unit_test_naming}}
- Location: {{unit_test_location}}
- Mocking Library: {{mocking_library}}
- Coverage Requirement: {{unit_coverage}}
AI Agent Requirements:
- Generate tests for all public methods
- Cover edge cases and error conditions
- Follow AAA pattern (Arrange, Act, Assert)
- Mock all external dependencies
Integration Tests
- Scope: {{integration_scope}}
- Location: {{integration_test_location}}
- Test Infrastructure:
- {{integration_dependency_1}}: {{integration_test_approach_1}} ({{integration_test_tool_1}})
- {{integration_dependency_2}}: {{integration_test_approach_2}} ({{integration_test_tool_2}})
End-to-End Tests
- Framework: {{e2e_framework}} {{e2e_version}}
- Scope: {{e2e_scope}}
- Environment: {{e2e_environment}}
- Test Data: {{e2e_data_strategy}}
Test Data Management
- Strategy: {{test_data_approach}}
- Fixtures: {{fixture_location}}
- Factories: {{factory_pattern}}
- Cleanup: {{cleanup_strategy}}
Continuous Testing
- CI Integration: {{ci_test_stages}}
- Performance Tests: {{perf_test_approach}}
- Security Tests: {{security_test_approach}}
Security
Input Validation
- Validation Library: {{validation_library}}
- Validation Location: {{where_to_validate}}
- Required Rules:
- All external inputs MUST be validated
- Validation at API boundary before processing
- Whitelist approach preferred over blacklist
Authentication & Authorization
- Auth Method: {{auth_implementation}}
- Session Management: {{session_approach}}
- Required Patterns:
- {{auth_pattern_1}}
- {{auth_pattern_2}}
Secrets Management
- Development: {{dev_secrets_approach}}
- Production: {{prod_secrets_service}}
- Code Requirements:
- NEVER hardcode secrets
- Access via configuration service only
- No secrets in logs or error messages
API Security
- Rate Limiting: {{rate_limit_implementation}}
- CORS Policy: {{cors_configuration}}
- Security Headers: {{required_headers}}
- HTTPS Enforcement: {{https_approach}}
Data Protection
- Encryption at Rest: {{encryption_at_rest}}
- Encryption in Transit: {{encryption_in_transit}}
- PII Handling: {{pii_rules}}
- Logging Restrictions: {{what_not_to_log}}
Dependency Security
- Scanning Tool: {{dependency_scanner}}
- Update Policy: {{update_frequency}}
- Approval Process: {{new_dep_process}}
Security Testing
- SAST Tool: {{static_analysis}}
- DAST Tool: {{dynamic_analysis}}
- Penetration Testing: {{pentest_schedule}}
Next Steps
{{next_steps_guidance}}
Frontend Architecture Handoff
If applicable
{{frontend_architecture_prompt}}