/node-tube

Example project from "Bootstrapping Microservices with Docker, Kubernetes, and Terraform" book

Primary LanguageJavaScriptApache License 2.0Apache-2.0

NodeTube

Example project from "Bootstrapping Microservices with Docker, Kubernetes, and Terraform" book.

Based on Node.js + Express.

Microservices

Project consists of 6 microservices, database and message broker:

  1. 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.
  2. Video storage service. Uses Azure Blob storage for videos storage and returns stream by path for video streaming service.
  3. History service. Receives "viewed" events from video streaming service by RabbitMQ and puts it into database.
  4. MongoDB for storing data.
  5. RabbitMQ for indirect communications.
  6. Recommendations service. Receives "viewed" events by RabbitMQ and simply prints it to console.
  7. Metadata service. Provides video metadata to other services.
  8. Gateway service. Provides UI to users by fetching data from metadata service.

Architecture

Requirements

  • docker
  • docker-compose

Optional

  • make

How to start?

Use make up and make down to start and stop containers.

Use make dev for development with support of live reload by nodemon.

See also