Example project from "Bootstrapping Microservices with Docker, Kubernetes, and Terraform" book.
Based on Python + Flask.
At this moment (incomplete) 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 create and destroy containers.
Use make dev
for development with support of live reload by watchgod
.
- Go + Fiber version: https://github.com/capcom6/go-tube
- NodeJS + Express version: https://github.com/capcom6/node-tube