SudoSumo Infrastructure Technical Specifications
Sudosumo architecture diagram
1. Frontend
Explore Frontend Repo- Framework: Next.js (React.js-based with TypeScript).
- Conception: Figma.
- Styling: TailwindCSS.
- Rendering Strategy: Server-Side Rendering (SSR) for improved security, efficient caching, and optimized SEO.
- Authentication: OAuth2 via Auth.js with Google as the provider.
- Deployment: Deployed using a serverless provider Netlify for automatic scaling and cost efficiency.
- Security: TLS configuration for secure communication between frontend and backend.
2. Backend
Explore Backend Repo- Technology: Java Spring Boot (REST API).
- Architecture
- Domain-Driven Design (DDD) for improved modularity, separation of concerns, and ease of maintenance.
- Build with Jakarta EE for enterprise-level scalability and robustness.
- Security: OAuth2 with Google as the identity provider; uses JWT tokens for secure session management.
- Database Interaction: REST API for frontend communication; additional cron jobs scheduled for periodic database updates.
- Hosting: Hosted on an AWS EC2 instance using Docker container to add isolation and consistency across environnements and isolation, ensuring dedicated resources for backend operations.
- Load Balancer: AWS Elastic Load Balancer (ELB) to distribute traffic across multiple backend instances for high availability, serving as the front interface to the internet.
- TLS Configuration: For secure HTTP communication between frontend and backend.
- Data Update Mechanism: Scheduled cron jobs to reset each user's life to 5 at midnight, ensuring daily updates to the database.
3. Database
- Database Technology: PostgreSQL.
- Management: Hosted on an AWS RDS instance.
4. Infrastructure Components
- Load Balancer: Implemented to ensure high availability by distributing traffic evenly across backend instances through different subnets.
- DNS Configuration: Use of subdomains api.louisplace.com and sudosumo.louisplace.com for professional, branded URL management.
- Security Strategies:
- TLS for secure communication.
- OAuth2 for authentication with Google.
- AWS security group ensure that no instance is unnecessarily exposed to the internet by properly configuring security group rules.