Skip to content

Low level desing system

juadaz edited this page Jun 22, 2023 · 2 revisions

Review APP Low level design system

Content index

Requirements of the system

Just design the system of backend, not the frontend

Review reader

  • Just get content of reviews GET
  • Thousand of users(1000+ readers) can see the reviews
  • They must be able to see the reviews around the world
  • Response time must be less than 10 seconds
  • In case, the reviews is more than 100 reviews, the response should be paginated
  • What's going on if the server is down? (Cache, CDN, etc)

Review publisher

  • Create, edit and remove reviews of cameras (POST, PUT, DELETE)
  • 10 Users can create reviews
  • Service must be available 24/7
  • Review publisher must be able to authenticate (Login and Logout, JWT, Register)
  • Review publisher must be able to upload images
  • Response time must be less than 300 seconds
  • 10 and 20 reviews per day (No needs a lot of resources)
  • Publishers just can create reviews in America Sur

Architecture of the system

Load Balancer

  • Nginx or HAProxy
  • Local: Nginx with Docker
  • Production: Azure Load Balancer

Horizontal Container

  • Local: Docker
  • Production: Azure Container App

ReviewReader:

  • Tecnologies: FastAPI, Pydantic, Python 3.11 and aioredis
  • Local: Python with Docker
  • Production: Azure container App
  • Cache
    • Local: Redis with Docker
    • Production: Azure Cache for redis
  • Database
    • Local: MongoDB NoSQL with Docker
    • Production: MongoDB NoSQL

ReviewPublisher:

Authentication:

Service of migration:

Modeling of data

Testing

CI/CD Integration