Python Backend Architecture Review
This skill provides comprehensive architecture review capabilities for Python backend applications, covering all aspects of system design from infrastructure to code organization.
When to Use This Skill
Activate this skill when the user requests:
- Review of a backend architecture design document
- Feedback on system design for a Python application
- Analysis of scalability patterns and approaches
- Security review of backend architecture
- Database design evaluation
- API design assessment
- Microservices architecture review
- Performance optimization recommendations
- Cloud infrastructure architecture review
- Code organization and project structure analysis
Review Framework
1. Initial Analysis
When a user provides an architecture document or describes their system, begin by:
Understanding Context
- Ask clarifying questions about:
- Expected scale (users, requests/sec, data volume)
- Performance requirements (latency, throughput)
- Security and compliance requirements
- Team size and expertise
- Budget constraints
- Timeline expectations
Document Analysis
- If architecture diagrams or documents are provided, analyze:
- Component relationships and boundaries
- Data flow patterns
- External dependencies
- Technology stack choices
- Deployment topology
2. Comprehensive Review Areas
Evaluate the architecture across these dimensions:
A. System Architecture & Design Patterns
Evaluate:
- Overall architectural style (monolith, microservices, serverless, hybrid)
- Service boundaries and responsibilities
- Communication patterns (sync/async, REST/GraphQL/gRPC)
- Event-driven architecture components
- CQRS and Event Sourcing patterns where applicable
- Domain-Driven Design principles
- Separation of concerns
- Dependency management
Provide Feedback On:
- Whether the chosen architecture matches the scale and complexity
- Over-engineering or under-engineering concerns
- Missing components or services
- Tight coupling issues
- Single points of failure
- Scalability bottlenecks
Python-Specific Considerations:
- Framework selection (FastAPI, Django, Flask, etc.)
- ASGI vs WSGI considerations
- Async/await patterns and usage
- Python's GIL impact on architecture decisions
- Multi-processing vs multi-threading strategies
B. Database Architecture
Evaluate:
- Database type selection (PostgreSQL, MySQL, MongoDB, Redis, etc.)
- Data modeling approach
- Normalization vs denormalization strategy
- Sharding and partitioning plans
- Read replicas and replication strategy
- Caching layers (Redis, Memcached)
- Database connection pooling
- Transaction management
- Data consistency models (strong, eventual)
Provide Feedback On:
- Schema design quality
- Index strategies
- Query optimization patterns
- N+1 query prevention
- Database migration strategy
- Backup and disaster recovery
- Multi-tenancy approaches if applicable
- Data retention and archival strategies
Python-Specific Considerations:
- ORM selection (SQLAlchemy, Django ORM, Tortoise ORM, etc.)
- Raw SQL vs ORM tradeoffs
- Async database drivers (asyncpg, motor, etc.)
- Migration tools (Alembic, Django migrations)
C. API Design & Communication
Evaluate:
- API design patterns (RESTful, GraphQL, gRPC)
- Endpoint structure and naming
- Request/response formats
- Versioning strategy
- Authentication and authorization
- Rate limiting and throttling
- API documentation approach
- Contract-first vs code-first design
- WebSocket usage for real-time features
- Message queue integration (RabbitMQ, Kafka, SQS)
Provide Feedback On:
- API consistency and conventions
- Error handling and status codes
- Pagination strategies
- Filtering and search capabilities
- Idempotency guarantees
- Backward compatibility approach
- GraphQL schema design if applicable
- gRPC service definitions if applicable
Python-Specific Considerations:
- FastAPI automatic OpenAPI generation
- Pydantic validation models
- Django REST Framework serializers
- GraphQL libraries (Strawberry, Graphene, Ariadne)
- gRPC-python code generation
D. Security Architecture
Evaluate:
- Authentication mechanisms (JWT, OAuth2, session-based)
- Authorization model (RBAC, ABAC, policy-based)
- API security (rate limiting, CORS, CSRF protection)
- Data encryption (at rest and in transit)
- Secrets management approach
- Network security (VPC, security groups, firewall rules)
- Input validation and sanitization
- SQL injection prevention
- XSS and CSRF protections
- Dependency vulnerability scanning
- Security headers implementation
Provide Feedback On:
- Authentication/authorization gaps
- Sensitive data exposure risks
- Missing security controls
- Overly permissive access
- Insecure defaults
- Lack of audit logging
- Missing security monitoring
Python-Specific Considerations:
- Usage of python-jose, PyJWT for token handling
- Password hashing with bcrypt, argon2
- Environment variable management (python-dotenv)
- Security middleware in frameworks
- SQLAlchemy parameterized queries
E. Scalability & Performance
Evaluate:
- Horizontal vs vertical scaling strategy
- Load balancing approach
- Auto-scaling configuration
- Caching strategy (application, database, CDN)
- Async processing for long-running tasks
- Background job processing (Celery, RQ, Dramatiq)
- Queue-based architectures
- Database read replicas
- Connection pooling
- Resource optimization
Provide Feedback On:
- Scalability bottlenecks
- Missing caching layers
- Inefficient data access patterns
- Synchronous operations that should be async
- Missing queue infrastructure
- Poor resource utilization
- Lack of performance monitoring
Python-Specific Considerations:
- ASGI server selection (Uvicorn, Hypercorn)
- Gunicorn worker configuration
- Celery worker configuration
- Async framework usage (asyncio best practices)
- Performance profiling tools (cProfile, py-spy)
- GIL workarounds for CPU-bound tasks
F. Observability & Monitoring
Evaluate:
- Logging strategy and centralization
- Metrics collection and aggregation
- Distributed tracing implementation
- Error tracking and alerting
- Health check endpoints
- Performance monitoring
- Business metrics tracking
- Log aggregation tools (ELK, Loki, CloudWatch)
- APM tools (DataDog, New Relic, Prometheus)
Provide Feedback On:
- Missing observability components
- Insufficient logging detail
- Lack of structured logging
- No distributed tracing
- Missing critical alerts
- No performance baselines
- Inadequate error tracking
Python-Specific Considerations:
- Structured logging libraries (structlog, python-json-logger)
- OpenTelemetry Python SDK
- Sentry integration
- StatsD/Prometheus client libraries
- Context propagation in async code
G. Deployment & Infrastructure
Evaluate:
- Containerization strategy (Docker)
- Orchestration approach (Kubernetes, ECS, etc.)
- CI/CD pipeline design
- Environment management (dev, staging, prod)
- Infrastructure as Code (Terraform, CloudFormation)
- Blue-green or canary deployment strategies
- Rollback procedures
- Configuration management
- Secret management in deployment
Provide Feedback On:
- Deployment complexity
- Missing automation
- Lack of environment parity
- No rollback strategy
- Insufficient testing in pipeline
- Manual deployment steps
- Missing infrastructure versioning
Python-Specific Considerations:
- Docker image optimization (multi-stage builds)
- Dependency management (pip, Poetry, PDM)
- Virtual environment handling in containers
- Python version management
- Compiled dependencies (wheel files)
H. Code Organization & Project Structure
Evaluate:
- Project directory structure
- Module and package organization
- Dependency injection patterns
- Configuration management
- Environment variable usage
- Testing strategy and organization
- Code reusability patterns
- Package/module boundaries
Provide Feedback On:
- Unclear module responsibilities
- Circular dependencies
- Poorly organized code structure
- Lack of separation between layers
- Missing configuration abstraction
- Hard-coded values
- Insufficient test coverage
Python-Specific Considerations:
- Package structure (src layout vs flat layout)
- init.py organization
- Import patterns and circular import prevention
- Type hints and mypy configuration
- Pydantic settings management
- pytest organization and fixtures
I. Data Flow & State Management
Evaluate:
- Request lifecycle and data flow
- State management approach
- Session management
- Cache invalidation strategy
- Event flow in event-driven systems
- Data transformation layers
- Data validation points
Provide Feedback On:
- Unclear data flow
- State synchronization issues
- Missing validation layers
- Inconsistent data transformation
- Cache coherence problems
- Session management issues
J. Resilience & Error Handling
Evaluate:
- Retry mechanisms and backoff strategies
- Circuit breaker patterns
- Timeout configurations
- Graceful degradation approach
- Error handling consistency
- Dead letter queue handling
- Bulkhead patterns
- Rate limiting and throttling
Provide Feedback On:
- Missing fault tolerance patterns
- Cascading failure risks
- Lack of timeouts
- No circuit breakers for external services
- Inconsistent error handling
- Missing retry logic
- No graceful degradation
Python-Specific Considerations:
- tenacity library for retries
- asyncio timeout handling
- Exception hierarchy design
- Context managers for resource cleanup
3. Review Output Format
Structure your review as follows:
Executive Summary
- Overall architecture assessment (1-3 paragraphs)
- Key strengths identified
- Critical concerns requiring immediate attention
- Overall maturity and readiness assessment
Detailed Findings
For each review area, provide:
[Area Name]
Strengths:
- Bullet points of what's done well
Concerns:
- HIGH: Critical issues that must be addressed
- MEDIUM: Important issues that should be addressed
- LOW: Nice-to-have improvements
Recommendations:
- Specific, actionable recommendations
- Alternative approaches to consider
- Best practices to follow
- Python-specific library or tool suggestions
Architecture Patterns & Best Practices
Suggest proven patterns relevant to their use case:
- Specific design patterns (Repository, Factory, Strategy, etc.)
- Integration patterns
- Python-specific idioms
- Framework-specific best practices
Technology Stack Assessment
Review their chosen technologies:
- Appropriateness for the use case
- Team expertise considerations
- Community support and maturity
- Alternative options to consider
- Python package ecosystem recommendations
Scalability Roadmap
If the architecture needs to scale:
- Current limitations
- Scaling stages and triggers
- Migration strategies
- Cost projections at different scales
Security Checklist
Provide a specific security checklist:
- Authentication/authorization items
- Data protection items
- Network security items
- Compliance considerations (GDPR, HIPAA, etc.)
- Python security best practices
Next Steps & Priorities
Rank recommendations by:
- Must-fix items (blocking issues)
- Should-fix items (important for production)
- Nice-to-have items (improvements)
Include estimated effort and dependencies.
4. Interactive Review Process
When conducting the review:
- Start with clarifying questions if the architecture description is incomplete
- Ask about constraints (budget, timeline, team size)
- Understand the domain and specific business requirements
- Request diagrams or documentation if not provided
- Provide incremental feedback for large architectures
- Offer to dive deeper into specific areas of concern
- Suggest example implementations or reference architectures
- Provide code examples for recommended patterns
5. Reference Resources
When relevant, reference:
- 12-Factor App principles
- Python package recommendations (awesome-python)
- Cloud provider best practices (AWS Well-Architected, etc.)
- Security frameworks (OWASP Top 10)
- Performance benchmarking resources
- Open-source reference implementations
- Python-specific resources (PEPs, Python Enhancement Proposals)
6. Tools & Automation Recommendations
Suggest tools for:
- Static analysis (Ruff, pylint, flake8, mypy)
- Security scanning (Bandit, Safety, Snyk)
- Performance profiling (cProfile, py-spy, scalene)
- Load testing (Locust, Artillery)
- Monitoring (Prometheus, Grafana, DataDog)
- Documentation (Sphinx, MkDocs)
- Dependency management (Poetry, PDM, pip-tools)
- Code formatting (Black, Ruff)
Communication Style
When providing reviews:
- Be constructive and specific
- Explain the "why" behind recommendations
- Provide examples and code snippets
- Balance criticism with recognition of good practices
- Prioritize issues clearly
- Offer multiple solutions when applicable
- Consider the team's context and constraints
- Use clear, professional language
- Include Python code examples where helpful
- Reference Python documentation and PEPs
Example Questions to Ask
Before starting a review, consider asking:
- What is the expected scale of this system (users, requests, data)?
- What are the critical performance requirements?
- Are there specific compliance or security requirements?
- What is the team's experience level with Python backend development?
- What is the current development stage (design, prototype, production)?
- Are there any existing systems this needs to integrate with?
- What is the budget for infrastructure?
- What is the timeline for deployment?
- Are there any technology preferences or constraints?
- What are the most critical features for the initial release?
Deliverables
At the end of a review, you should have provided:
- Executive summary with overall assessment
- Detailed findings across all review areas
- Prioritized list of recommendations
- Security checklist
- Scalability roadmap (if applicable)
- Technology stack assessment
- Next steps with effort estimates
- Optional: Example code or architectural diagrams
- Optional: Reference links and resources
Continuous Improvement
After the initial review:
- Offer to review specific areas in more depth
- Provide guidance on implementing recommendations
- Help with specific technical challenges
- Review updated designs
- Answer follow-up questions
Remember: The goal is to help the user build a robust, scalable, secure, and maintainable Python backend system that meets their specific needs and constraints.
1---2name: python-backend-architecture-review3description: Comprehensive design architecture review for Python backend applications. Use this skill when users ask you to review, analyze, or provide feedback on backend architecture designs, system design documents, or Python application architecture. Covers scalability, security, performance, database design, API design, microservices patterns, deployment architecture, and best practices.4---56# Python Backend Architecture Review78This skill provides comprehensive architecture review capabilities for Python backend applications, covering all aspects of system design from infrastructure to code organization.910## When to Use This Skill1112Activate this skill when the user requests:13- Review of a backend architecture design document14- Feedback on system design for a Python application15- Analysis of scalability patterns and approaches16- Security review of backend architecture17- Database design evaluation18- API design assessment19- Microservices architecture review20- Performance optimization recommendations21- Cloud infrastructure architecture review22- Code organization and project structure analysis2324## Review Framework2526### 1. Initial Analysis2728When a user provides an architecture document or describes their system, begin by:29301. **Understanding Context**31 - Ask clarifying questions about:32 - Expected scale (users, requests/sec, data volume)33 - Performance requirements (latency, throughput)34 - Security and compliance requirements35 - Team size and expertise36 - Budget constraints37 - Timeline expectations38392. **Document Analysis**40 - If architecture diagrams or documents are provided, analyze:41 - Component relationships and boundaries42 - Data flow patterns43 - External dependencies44 - Technology stack choices45 - Deployment topology4647### 2. Comprehensive Review Areas4849Evaluate the architecture across these dimensions:5051#### A. System Architecture & Design Patterns5253**Evaluate:**54- Overall architectural style (monolith, microservices, serverless, hybrid)55- Service boundaries and responsibilities56- Communication patterns (sync/async, REST/GraphQL/gRPC)57- Event-driven architecture components58- CQRS and Event Sourcing patterns where applicable59- Domain-Driven Design principles60- Separation of concerns61- Dependency management6263**Provide Feedback On:**64- Whether the chosen architecture matches the scale and complexity65- Over-engineering or under-engineering concerns66- Missing components or services67- Tight coupling issues68- Single points of failure69- Scalability bottlenecks7071**Python-Specific Considerations:**72- Framework selection (FastAPI, Django, Flask, etc.)73- ASGI vs WSGI considerations74- Async/await patterns and usage75- Python's GIL impact on architecture decisions76- Multi-processing vs multi-threading strategies7778#### B. Database Architecture7980**Evaluate:**81- Database type selection (PostgreSQL, MySQL, MongoDB, Redis, etc.)82- Data modeling approach83- Normalization vs denormalization strategy84- Sharding and partitioning plans85- Read replicas and replication strategy86- Caching layers (Redis, Memcached)87- Database connection pooling88- Transaction management89- Data consistency models (strong, eventual)9091**Provide Feedback On:**92- Schema design quality93- Index strategies94- Query optimization patterns95- N+1 query prevention96- Database migration strategy97- Backup and disaster recovery98- Multi-tenancy approaches if applicable99- Data retention and archival strategies100101**Python-Specific Considerations:**102- ORM selection (SQLAlchemy, Django ORM, Tortoise ORM, etc.)103- Raw SQL vs ORM tradeoffs104- Async database drivers (asyncpg, motor, etc.)105- Migration tools (Alembic, Django migrations)106107#### C. API Design & Communication108109**Evaluate:**110- API design patterns (RESTful, GraphQL, gRPC)111- Endpoint structure and naming112- Request/response formats113- Versioning strategy114- Authentication and authorization115- Rate limiting and throttling116- API documentation approach117- Contract-first vs code-first design118- WebSocket usage for real-time features119- Message queue integration (RabbitMQ, Kafka, SQS)120121**Provide Feedback On:**122- API consistency and conventions123- Error handling and status codes124- Pagination strategies125- Filtering and search capabilities126- Idempotency guarantees127- Backward compatibility approach128- GraphQL schema design if applicable129- gRPC service definitions if applicable130131**Python-Specific Considerations:**132- FastAPI automatic OpenAPI generation133- Pydantic validation models134- Django REST Framework serializers135- GraphQL libraries (Strawberry, Graphene, Ariadne)136- gRPC-python code generation137138#### D. Security Architecture139140**Evaluate:**141- Authentication mechanisms (JWT, OAuth2, session-based)142- Authorization model (RBAC, ABAC, policy-based)143- API security (rate limiting, CORS, CSRF protection)144- Data encryption (at rest and in transit)145- Secrets management approach146- Network security (VPC, security groups, firewall rules)147- Input validation and sanitization148- SQL injection prevention149- XSS and CSRF protections150- Dependency vulnerability scanning151- Security headers implementation152153**Provide Feedback On:**154- Authentication/authorization gaps155- Sensitive data exposure risks156- Missing security controls157- Overly permissive access158- Insecure defaults159- Lack of audit logging160- Missing security monitoring161162**Python-Specific Considerations:**163- Usage of python-jose, PyJWT for token handling164- Password hashing with bcrypt, argon2165- Environment variable management (python-dotenv)166- Security middleware in frameworks167- SQLAlchemy parameterized queries168169#### E. Scalability & Performance170171**Evaluate:**172- Horizontal vs vertical scaling strategy173- Load balancing approach174- Auto-scaling configuration175- Caching strategy (application, database, CDN)176- Async processing for long-running tasks177- Background job processing (Celery, RQ, Dramatiq)178- Queue-based architectures179- Database read replicas180- Connection pooling181- Resource optimization182183**Provide Feedback On:**184- Scalability bottlenecks185- Missing caching layers186- Inefficient data access patterns187- Synchronous operations that should be async188- Missing queue infrastructure189- Poor resource utilization190- Lack of performance monitoring191192**Python-Specific Considerations:**193- ASGI server selection (Uvicorn, Hypercorn)194- Gunicorn worker configuration195- Celery worker configuration196- Async framework usage (asyncio best practices)197- Performance profiling tools (cProfile, py-spy)198- GIL workarounds for CPU-bound tasks199200#### F. Observability & Monitoring201202**Evaluate:**203- Logging strategy and centralization204- Metrics collection and aggregation205- Distributed tracing implementation206- Error tracking and alerting207- Health check endpoints208- Performance monitoring209- Business metrics tracking210- Log aggregation tools (ELK, Loki, CloudWatch)211- APM tools (DataDog, New Relic, Prometheus)212213**Provide Feedback On:**214- Missing observability components215- Insufficient logging detail216- Lack of structured logging217- No distributed tracing218- Missing critical alerts219- No performance baselines220- Inadequate error tracking221222**Python-Specific Considerations:**223- Structured logging libraries (structlog, python-json-logger)224- OpenTelemetry Python SDK225- Sentry integration226- StatsD/Prometheus client libraries227- Context propagation in async code228229#### G. Deployment & Infrastructure230231**Evaluate:**232- Containerization strategy (Docker)233- Orchestration approach (Kubernetes, ECS, etc.)234- CI/CD pipeline design235- Environment management (dev, staging, prod)236- Infrastructure as Code (Terraform, CloudFormation)237- Blue-green or canary deployment strategies238- Rollback procedures239- Configuration management240- Secret management in deployment241242**Provide Feedback On:**243- Deployment complexity244- Missing automation245- Lack of environment parity246- No rollback strategy247- Insufficient testing in pipeline248- Manual deployment steps249- Missing infrastructure versioning250251**Python-Specific Considerations:**252- Docker image optimization (multi-stage builds)253- Dependency management (pip, Poetry, PDM)254- Virtual environment handling in containers255- Python version management256- Compiled dependencies (wheel files)257258#### H. Code Organization & Project Structure259260**Evaluate:**261- Project directory structure262- Module and package organization263- Dependency injection patterns264- Configuration management265- Environment variable usage266- Testing strategy and organization267- Code reusability patterns268- Package/module boundaries269270**Provide Feedback On:**271- Unclear module responsibilities272- Circular dependencies273- Poorly organized code structure274- Lack of separation between layers275- Missing configuration abstraction276- Hard-coded values277- Insufficient test coverage278279**Python-Specific Considerations:**280- Package structure (src layout vs flat layout)281- __init__.py organization282- Import patterns and circular import prevention283- Type hints and mypy configuration284- Pydantic settings management285- pytest organization and fixtures286287#### I. Data Flow & State Management288289**Evaluate:**290- Request lifecycle and data flow291- State management approach292- Session management293- Cache invalidation strategy294- Event flow in event-driven systems295- Data transformation layers296- Data validation points297298**Provide Feedback On:**299- Unclear data flow300- State synchronization issues301- Missing validation layers302- Inconsistent data transformation303- Cache coherence problems304- Session management issues305306#### J. Resilience & Error Handling307308**Evaluate:**309- Retry mechanisms and backoff strategies310- Circuit breaker patterns311- Timeout configurations312- Graceful degradation approach313- Error handling consistency314- Dead letter queue handling315- Bulkhead patterns316- Rate limiting and throttling317318**Provide Feedback On:**319- Missing fault tolerance patterns320- Cascading failure risks321- Lack of timeouts322- No circuit breakers for external services323- Inconsistent error handling324- Missing retry logic325- No graceful degradation326327**Python-Specific Considerations:**328- tenacity library for retries329- asyncio timeout handling330- Exception hierarchy design331- Context managers for resource cleanup332333### 3. Review Output Format334335Structure your review as follows:336337#### Executive Summary338- Overall architecture assessment (1-3 paragraphs)339- Key strengths identified340- Critical concerns requiring immediate attention341- Overall maturity and readiness assessment342343#### Detailed Findings344345For each review area, provide:346347**[Area Name]**348349**Strengths:**350- Bullet points of what's done well351352**Concerns:**353- HIGH: Critical issues that must be addressed354- MEDIUM: Important issues that should be addressed355- LOW: Nice-to-have improvements356357**Recommendations:**358- Specific, actionable recommendations359- Alternative approaches to consider360- Best practices to follow361- Python-specific library or tool suggestions362363#### Architecture Patterns & Best Practices364365Suggest proven patterns relevant to their use case:366- Specific design patterns (Repository, Factory, Strategy, etc.)367- Integration patterns368- Python-specific idioms369- Framework-specific best practices370371#### Technology Stack Assessment372373Review their chosen technologies:374- Appropriateness for the use case375- Team expertise considerations376- Community support and maturity377- Alternative options to consider378- Python package ecosystem recommendations379380#### Scalability Roadmap381382If the architecture needs to scale:383- Current limitations384- Scaling stages and triggers385- Migration strategies386- Cost projections at different scales387388#### Security Checklist389390Provide a specific security checklist:391- Authentication/authorization items392- Data protection items393- Network security items394- Compliance considerations (GDPR, HIPAA, etc.)395- Python security best practices396397#### Next Steps & Priorities398399Rank recommendations by:4001. Must-fix items (blocking issues)4012. Should-fix items (important for production)4023. Nice-to-have items (improvements)403404Include estimated effort and dependencies.405406### 4. Interactive Review Process407408When conducting the review:4094101. **Start with clarifying questions** if the architecture description is incomplete4112. **Ask about constraints** (budget, timeline, team size)4123. **Understand the domain** and specific business requirements4134. **Request diagrams or documentation** if not provided4145. **Provide incremental feedback** for large architectures4156. **Offer to dive deeper** into specific areas of concern4167. **Suggest example implementations** or reference architectures4178. **Provide code examples** for recommended patterns418419### 5. Reference Resources420421When relevant, reference:422- 12-Factor App principles423- Python package recommendations (awesome-python)424- Cloud provider best practices (AWS Well-Architected, etc.)425- Security frameworks (OWASP Top 10)426- Performance benchmarking resources427- Open-source reference implementations428- Python-specific resources (PEPs, Python Enhancement Proposals)429430### 6. Tools & Automation Recommendations431432Suggest tools for:433- Static analysis (Ruff, pylint, flake8, mypy)434- Security scanning (Bandit, Safety, Snyk)435- Performance profiling (cProfile, py-spy, scalene)436- Load testing (Locust, Artillery)437- Monitoring (Prometheus, Grafana, DataDog)438- Documentation (Sphinx, MkDocs)439- Dependency management (Poetry, PDM, pip-tools)440- Code formatting (Black, Ruff)441442## Communication Style443444When providing reviews:445- Be constructive and specific446- Explain the "why" behind recommendations447- Provide examples and code snippets448- Balance criticism with recognition of good practices449- Prioritize issues clearly450- Offer multiple solutions when applicable451- Consider the team's context and constraints452- Use clear, professional language453- Include Python code examples where helpful454- Reference Python documentation and PEPs455456## Example Questions to Ask457458Before starting a review, consider asking:4594601. What is the expected scale of this system (users, requests, data)?4612. What are the critical performance requirements?4623. Are there specific compliance or security requirements?4634. What is the team's experience level with Python backend development?4645. What is the current development stage (design, prototype, production)?4656. Are there any existing systems this needs to integrate with?4667. What is the budget for infrastructure?4678. What is the timeline for deployment?4689. Are there any technology preferences or constraints?46910. What are the most critical features for the initial release?470471## Deliverables472473At the end of a review, you should have provided:4744751. Executive summary with overall assessment4762. Detailed findings across all review areas4773. Prioritized list of recommendations4784. Security checklist4795. Scalability roadmap (if applicable)4806. Technology stack assessment4817. Next steps with effort estimates4828. Optional: Example code or architectural diagrams4839. Optional: Reference links and resources484485## Continuous Improvement486487After the initial review:488- Offer to review specific areas in more depth489- Provide guidance on implementing recommendations490- Help with specific technical challenges491- Review updated designs492- Answer follow-up questions493494Remember: The goal is to help the user build a robust, scalable, secure, and maintainable Python backend system that meets their specific needs and constraints.