FastAPI Backend
The backend is a production-ready FastAPI application following Level 2/3 professional practices with modular service architecture, comprehensive middleware, and async task processing.Technology Stack
Core Dependencies
Application Structure
Application Factory Pattern
Themain.py uses a factory pattern for clean application initialization:
backend/app/main.py
API Versioning
All business endpoints are versioned under/api/v1 for API stability:
backend/app/main.py
- Business endpoints:
/api/v1/* - Health checks:
/health/*(non-versioned) - Documentation:
/docs,/redoc(non-versioned)
Middleware Stack
Middleware is configured in reverse order (last added = first executed):1. CORS Middleware
backend/app/main.py
2. Rate Limiting Middleware
Distributed rate limiting with Redis backend:backend/app/middleware/rate_limit.py
- Sliding window algorithm
- Endpoint-specific limits
- Trusted IP bypass
- Rate limit headers (
X-RateLimit-*) - SSE endpoint exemption
3. Security Headers Middleware
backend/app/core/middleware.py
4. Proxy Headers Middleware
Extract real client IP behind proxies/load balancers:backend/app/main.py
5. Request Validation Middleware
Protects against malicious requests:backend/app/core/middleware.py
6. Request Logging Middleware
Structured request logging for security auditing:backend/app/core/middleware.py
Service Layer Architecture
Business logic is organized in service classes:backend/app/services/audit_service.py
- Business logic and data operations
- Transaction management
- Cache invalidation
- Event publishing (Redis)
- External API integration
Authentication & Authorization
backend/app/core/auth.py
- JWT bearer token authentication
- Auth0 integration
- Resource-level authorization
- User context injection
OpenAPI Schema Customization
Automatic API documentation with security scheme:backend/app/main.py
Running the Backend
Development Mode
Production Mode
Docker (Recommended)
Next Steps
Frontend Architecture
Learn about the Next.js frontend
Real-time System
Explore the SSE implementation