Ride Booking Platform – Microservice Architecture Java, Spring Boot, Kafka, Eureka, JWT, WebSocket
| Service | Description | Repo Link |
|---|---|---|
| AuthService | JWT-based authentication | Link |
| BookingService | Handles booking flow | Link |
| LocationService | Returns nearby drivers | Link |
| ServiceDiscovery | Acts as a central registry for all microservices | Link |
| EntityService | Shared model/data library | Link |
| SocketServer | WebSocket server for live updates | Link |
| ReviewService | managing ratings and reviews between passengers and drivers | Link |
| UberNotificationService | The Uber Notification Service is responsible for handling all passenger notifications | Link |
| Uber-Gateway_Service | The Uber Gateway Service is a Spring Cloud Gateway–based microservice that serves as the API Gateway for the Uber clone system | Link |
| SocketWebClient | this file demonstrates real-time driver communication and ride request handling in a ride-hailing system using WebSockets, SockJS, and STOMP | Link |
Additional Project Room Rental Service – A platform for listing and booking rental rooms. Built with Java, Spring Boot, and MySQL.
| Service | Description | Repo Link |
|---|---|---|
| Room-RentalService | A platform for listing and booking rental rooms | Link |
| room-rentalFrontend | A platform for listing and booking rental rooms | Link |
🚖 Uber Backend Microservices - Complete Architecture Analysis 📊 Project Overview This is a production-ready Uber-like ride-hailing platform built with Spring Boot microservices architecture. It handles user authentication, ride booking, real-time location tracking, driver-passenger communication via WebSockets, and notifications.
🏗️ Architecture Components Core Services (11 Microservices): UberServiceDiscovery (Port: 8761)
Eureka Server for service registry All services register here for discovery uber-gateway-service (Port: 8081)
API Gateway with Spring Cloud Gateway JWT authentication filter Rate limiting with Redis Circuit breaker (Resilience4j) Routes all external requests to microservices UberProject-AuthService (Port: 1001)
User authentication & authorization JWT token generation MySQL database for user data Flyway for database migrations UberBookingService (Port: 1005)
Handles ride booking creation & updates MySQL database for bookings Kafka consumer for ride updates Retrofit client for inter-service communication UberSocketServer (Port: 8080)
WebSocket server (STOMP protocol) Real-time communication hub Kafka producer/consumer Handles ride requests, chat, notifications UberProject-LocationService (Port: 1003)
Driver/passenger location tracking Real-time location updates ClientSocketService
WebSocket client service Connects to UberSocketServer UberNotificationService
Push notifications Email/SMS alerts UberReviewService
Ride ratings & reviews UberProject-EntityService
Shared entity library Common DTOs across services SocketWebClient
HTML/JS client for testing WebSocket connections Driver notification interface 🔄 Complete Application Flow User Journey:
-
User Registration/Login → Client → Gateway (8081) → AuthService (1001) → JWT token returned
-
Request a Ride → Client → Gateway → BookingService (1005) → Creates booking in MySQL → Publishes to Kafka topic
-
Notify Nearby Drivers → Kafka → SocketServer (8080) → WebSocket broadcast to connected drivers → Driver receives ride request via /topic/rideRequest
-
Driver Accepts Ride → Driver sends acceptance via /app/rideResponse → SocketServer → Kafka → BookingService → Booking status updated
-
Real-time Tracking → LocationService (1003) tracks GPS → Updates broadcast via WebSocket → Both passenger & driver see live location
-
Ride Completion → BookingService updates status → NotificationService sends alerts → ReviewService enables rating

