System Design - Full stack Blog (simple blog) (Microservices Architecture)

1. Overview

  • Project Goal
  • Technology Stack
    • Frontend: React
    • Backend: Express (Node.js)
    • Database: MySQL
    • Containerization: Docker
    • Deployment: AWS (ECS or EC2)

2. Architecture Diagram

  • System Components
  • Communication Flow

3. Microservices

3.1 Authentication Service

  • User Registration and Login (Google account only)
  • JWT token issuance and validation
  • User Database (MySQL)

3.2 Blog Service

  • Create, Read, Update, Delete (CRUD) Posts
  • Commenting System (optional/simple)
  • Post Database (MySQL)

3.3 API Gateway

  • Route incoming requests to the correct service
  • Validate JWT tokens for protected routes

4. Frontend (React App)

  • Authentication Pages (Login, Signup) (Google Account)
  • Blog Page (Post List, Post Detail, Create/Edit Post)

5. Deployment

  • Docker Compose setup
  • AWS ECS / EC2 Deployment
  • Load Balancer

6. Security Considerations

  • Only Google Account
  • API Security Best Practice

7. Future Improvements

  • User Profile Page
  • Like/Favorite Posts
  • Search Functionality