Instagram Microservices
This is a sample project to demonstrate how to build a project using microservices architecture. In this project i use Golang as the main programming language and PostgreSQL as the main database. I also use Docker and Docker Compose to run the services. Redis-stream is used as the message broker. Nginx is used as the API Gateway and Reverse Proxy. SMTP is used to send email for user verification.
Technologies
Services
- Nginx: API Gateway and Reverse Proxy
- auth_service: handles user authentication and authorization
- post_service: handles posts
- account_service: handles creating account for users
- comment_service: handles comments for posts
- like_service: handles likes for posts & comments
- user-profile_service: handles user profile
- followers_service: handles followers for users
How to run
Prerequisites
Steps
- Clone the repository
git clone
- Run the following command to start the services
docker-compose up -d
- Run the following command to stop the services
docker-compose down