An app to generate shortened URL
Planned Architecture
- Uses Docker Compose for container orchestration
- React.js frontend client
- Nginx to serve frontend files, and loadbalance requests to multiple Node.js servers
- Multiple instance of Node.js servers work as producers to receive client request, and add task to message queue
- A single Node.js server work as consumers to handle tasks in message queue
- Uses RabbitMQ as message queue
- Uses MongoDB to store generated short URLs
- Uses Redis in front of MongoDB to accelerate service speed