BookMovie is a web interface for booking movies. It uses various microservices to handle different requests.
Team Project for CMPE-281 Professor Paul Nguyen
Team Members
- Priyam Vaidya
- Jay Pathak
- Mihir Patel
- Jainish Parikh
- Prachal Patel
The user layer handles the client side of the system. This system is deployed on Google Cloud Platform. It uses React framework for frontend and makes api calls.
Kong API Gateway handles the requests coming from the user interface and it works in DBless mode. It is responsible for routing and calling respective microservices. It is deployed on Google Cloud Platform.
The api layer has 5 seperate microservices which are implemented as follows
Used for Theater registration and deregistration from booking system.
Used for adding new/active movies and removing existing/inactive movies from the system.
Used for registartion and deregistration of users in booking system.
Used for sending acknoledgement of booking confirmations via Email and Text.
Used for managing number of seats and users in a particular show while booking.
Each microservice has its individual classic laodbalancer connected to an autoscaling group.
Each microservice uses a sharded mongoDB cluster. Each cluster contains following members:
- 1 Query Router
- 2 Config Servers
- 2 Shards each having a Replica Set which consists of 3 mongoDB instances
To achieve x-axis scaling we have dockerized GO API and deployed it to EC2 instance which runs behind a Load Balancer on AWS.
To achieve y-axis scaling we have used Service Oriented Architecture by dividing business logic into different microservices namely :
- UserAPI
- TheaterAPI
- MovieAPI
- ShowAPI
- MailAPI
To achieve z-axis scaling we have used MongoDB sharded cluster which has been deployed on AWS. MongoDB sharded cluster contains 1 Mongo Query Router, 2 config servers, 2 sharded replica sets.