Example project from "Bootstrapping Microservices with Docker, Kubernetes, and Terraform" book.
Based on Node.js + Express.
Project consists of 6 microservices, database and message broker:
- Video streaming service. Gets video id from query param, retrives video info from metadata service and pass video stream from video storage service to client.
- Video storage service. Uses Azure Blob storage for videos storage and returns stream by path for video streaming service.
- History service. Receives "viewed" events from video streaming service by RabbitMQ and puts it into database.
- MongoDB for storing data.
- RabbitMQ for indirect communications.
- Recommendations service. Receives "viewed" events by RabbitMQ and simply prints it to console.
- Metadata service. Provides video metadata to other services.
- Gateway service. Provides UI to users by fetching data from metadata service.
- docker
- docker-compose
- make
Use make up
and make down
to start and stop containers.
Use make dev
for development with support of live reload by nodemon.
- Go + Fiber version: https://github.com/capcom6/go-tube
- Python + Flask version: https://github.com/capcom6/py-tube