Cinema - Example of Microservices in Go with Docker, Kubernetes and MongoDB
Overview
Cinema is an example project which demonstrates the use of microservices for a fictional movie theater. The Cinema backend is powered by 4 microservices, all of which happen to be written in Go, using MongoDB for manage the database and Docker to isolate and deploy the ecosystem.
- Movie Service: Provides information like movie ratings, title, etc.
- Show Times Service: Provides show times information.
- Booking Service: Provides booking information.
- Users Service: Provides movie suggestions for users by communicating with other services.
The Cinema use case is based on the project written in Python by Umer Mansoor.
The project structure is based in the knowledge learned in:
- Golang structure: https://peter.bourgon.org/go-best-practices-2016/#repository-structure
- Book Let's Go: https://lets-go.alexedwards.net/
Container images used support multi-architectures (amd64, arm/v7 and arm64).
Index
Deployment
The application can be deployed in both environments: local machine or in a kubernetes cluster. You can find the appropriate documentation for each case in the following links:
How To Use Cinema Services
Related Posts
Significant Revisions
- Microservices - Martin Fowler
- Umer Mansoor - Cinema
- Traefik Proxy Docs
- MongoDB Driver for Golang
- MongoDB Golang Channel