Microservices architecture based web application
This is example web application based on microservices architecture. It has 3 decoupled and scalable services:
- Products Management
- Order Management
- Email Sending
Technology Stack:
- Python
- Django/Django REST Framework
- Mongodb
- Nginx
- Docker
- Swagger UI
Python used as the backend development language. Django used as the backend framework. Django REST Framework or DRF used as the REST API development framework, Mongodb used as the database backend, Nginx used as the API gateway and finally docker used as the deployment method. Swagger used for documenting API
Each services have their seperate database completely decoupled. Nginx sits in front of each of the services to abstract all the microservices API endpoints into single one.
For testing:
- Clone the repo
- Run "docker-compose build" while inside the services folder
- After docker completes all the building staffs, run "docker-compose up -d" to run each microservices.
- Now go to your localhost, docker machine ip or server ip to access the API endpoints.
API endpoints: please see /api/v1/{services}/docs/
Deployed and tested in a real production server.