Skip to content

Project 2 - Architecture

Understanding the system architecture of Project 2.

Client (React) ↔ API Gateway ↔ Backend Services ↔ Database
Redis Cache
  • Directoryproject-2/
    • Directoryfrontend/
      • Directorysrc/
        • Directorycomponents/
        • Directorypages/
        • Directoryhooks/
        • Directoryutils/
      • Directorypublic/
      • package.json
    • Directorybackend/
      • Directorysrc/
        • Directoryroutes/
        • Directorycontrollers/
        • Directoryservices/
        • Directorymodels/
        • Directorymiddleware/
      • Directoryprisma/
        • schema.prisma
      • package.json
    • Directoryinfrastructure/
      • Directorykubernetes/
      • Directoryterraform/
    • docker-compose.yml
  • Scalability: Scale services independently
  • Maintainability: Smaller, focused codebases
  • Team autonomy: Teams can work independently
  • Technology flexibility: Use best tool for each service

We use PostgreSQL with:

  • Read replicas for scaling reads
  • Connection pooling via PgBouncer
  • Redis caching for frequently accessed data

RESTful API with:

  • JWT authentication
  • Rate limiting
  • Request validation
  • Error handling middleware
  • OpenAPI documentation

Deployed on Kubernetes with:

  • Auto-scaling: Horizontal Pod Autoscaler
  • Load balancing: Kubernetes Ingress
  • Monitoring: Prometheus + Grafana
  • Logging: ELK Stack

Check out the API Documentation for endpoint details.