This is a backend-only Movie Ticket Booking System built using Spring Boot Microservices.
There is NO frontend/UI — all interactions happen through REST APIs using Postman or any HTTP client.
The project demonstrates a real microservices architecture using:
- API Gateway
- Eureka Service Registry
- Booking Service
- Payment Service
- Docker & Docker Compose
- Inter-service REST communication
- DTOs, Entities, Service Interfaces, Repositories
Client (Postman / API Client)
│
▼
API Gateway (Routing)
│
┌─────────┴──────────┐
▼ ▼
Booking Service → Payment Service
│
▼
Eureka Service Registry
----------------------------------------------------------------------------
🧑💻 Client → 🚪 API Gateway → 🎟️ Booking Service → 💳 Payment Service
↓
📘 Eureka Server
Each microservice runs independently and registers itself in Eureka.
The API Gateway routes all API requests to appropriate microservices.
- Acts as the single entry point for all client requests
- Routes requests to Booking and Payment services
- Built using Spring Cloud Gateway
- Supports simple load balancing
- All services register dynamically
- Enables discovery of microservices
- Avoids hardcoding service URLs
Handles:
- Creating a booking
- Validating input
- Communicating with Payment Service
- Returning booking status
Includes:
IBookingService(interface)BookingServiceIMpl(implementation)BookingRepository(JPA)- DTOs, Entities
- Exception handling
Responsible for:
- Payment initialization
- Payment verification
- Returning payment status
Includes:
- Payment service interface & implementation
IPaymentRepo- DTOs, Entities
- Razorpay (optional integration)
| Component | Technology |
|---|---|
| Backend | Spring Boot |
| Routing | Spring Cloud Gateway |
| Service Discovery | Eureka Netflix |
| Build Tool | Maven |
| Communication | REST APIs |
| Language | Java |
| Deployment | Docker, Docker Compose |
📂 New folder/
├── 📁 api_gateway/
├── 📁 booking_Service/
├── 📁 movie-services-registry/
├── 📁 payment_sservice/
├── 🐳 docker-compose.yaml
├── 📄 pom.xml
└── 📘 README.md
This project is backend-only, so everything is tested using Postman / API clients.
You can run the services manually or using Docker Compose.
cd movie-services-registry
mvn spring-boot:run
cd api_gateway
mvn spring-boot:run
cd booking_Service
mvn spring-boot:run
cd payment_sservice
mvn spring-boot:run
This project includes Dockerfile for each microservice and a docker-compose.yaml to start everything together.
docker-compose up --build
docker-compose down
| Service | Port |
|---|---|
| 🟦 Eureka Server | 8761 |
| 🟩 API Gateway | 8080 |
| 🟧 Booking Service | 8081 |
| 🟥 Payment Service | 8082 |
You can open Eureka Dashboard at: