Example project from "Bootstrapping Microservices with Docker, Kubernetes, and Terraform" book.
Based on Go + Fiber.
At this moment (incomplete) project consists of 5 microservices, database and message broker:
- Video streaming service. Gets video id from query param, search for video path in database, get video stream from video storage service and returns 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 post request and puts it into database.
- MongoDB for storing data.
- RabbitMQ for indirect communication.
- Recommendation service. Receives "viewed" events from video streaming by RabbitMQ and simply logs them.
- Metadata service. Provides video metadata info.
- 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 air.
- NodeJS + Express version: https://github.com/capcom6/node-tube
- Python + Flask version: https://github.com/capcom6/py-tube