-
Notifications
You must be signed in to change notification settings - Fork 0
Low level desing system
juadaz edited this page Jun 22, 2023
·
2 revisions
- Definitions and requirements of business
- Requirements of the system
- Architecture of the system
- Modeling of data
- Testing
- CI/CD Integration
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
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:
- Technologies: Django Rest Framework, Django and Python 3.10, Django redis
- Local: Python with Docker
- Production: Azure app service
- Cache
- Local: Redis with Docker
- Production: Azure Cache for redis
- Local: Redis with Docker
- Database:
- Local: MySQL with Docker
- Production: Azure MySQL Database
Authentication:
- Technologies: Django Rest Framework, Django and Python 3.10, Django redis and JWT authentication
- Local: Python with Docker
- Production: Azure functions
- Cache
- Local: Redis with Docker
- Production: Azure Cache for redis
- Local: Redis with Docker
- Database:
- Local: MySQL with Docker
- Production: Azure MySQL Database
Service of migration:
- Technologies: PHP 8.2, Mongo PHP Library, MySQL PHP Library and Composer
- Local: PHP with Docker
- Production: Azure functions