How senanu03/ticket-hub works
SnapSeat/TicketHub is a microservice ticket-booking system. The customer workflow exposed in the sampled code is booking creation and seat reservation, followed by payment initiation and a payment-result update to the booking; the booking domain also supports lookup, cancellation, and expiry. Event and show management provide the catalog and seat-map capabilities. Notifications process booking outcomes and send email. The README is empty, and gateway routing, service discovery, and several event-driven connections are not shown in the excerpts, so those links are omitted.
Main entry points: PaymentService.java Payment operations · BookingService.java Booking operations · NotificationService.java Notification handling · BookingController.java Customer booking API
Components 22
Entry and identity
- API gateway
api-gateway/src/main/java/com/tp/snapseat/api_gateway/ApiGatewayApplication.java - JWT authentication
auth-service/auth-service/src/main/java/com/tp/snapseat/auth_service/service/AuthService.java
Event catalog
- Event management
event-service/event-service-updated-fixed/src/main/java/com/tp/snapseat/event_service/controller/EventController.java - Event catalog logic
event-service/event-service-updated-fixed/src/main/java/com/tp/snapseat/event_service/service/EventService.java - Show and seat APIs
event-service/event-service-updated-fixed/src/main/java/com/tp/snapseat/event_service/controller/ShowController.java - Show management
event-service/event-service-updated-fixed/src/main/java/com/tp/snapseat/event_service/service/ShowService.java
Bookings and seats
- Customer booking API
booking-service/src/main/java/com/tp/snapseat/booking_service/controller/BookingController.java - Booking operations
booking-service/src/main/java/com/tp/snapseat/booking_service/service/BookingService.java - Booking state
booking-service/src/main/java/com/tp/snapseat/booking_service/entity/Booking.java - Internal booking API
booking-service/src/main/java/com/tp/snapseat/booking_service/controller/InternalBookingController.java - Event service client
booking-service/src/main/java/com/tp/snapseat/booking_service/client/EventServiceClient.java
Payment processing
- Payment API
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/controller/PaymentController.java - Payment operations
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/service/PaymentService.java - Payment records
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/entity/Payment.java - Booking service client
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/client/BookingServiceClient.java - Payment providers
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/provider/PaymentProviderClient.java - Payment events
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/event/PaymentEventPublisher.java
Notifications
- Booking event consumer
notification-service/notification-service/src/main/java/com/tp/snapseat/notification_service/kafka/BookingNotificationConsumer.java - Notification handling
notification-service/notification-service/src/main/java/com/tp/snapseat/notification_service/service/NotificationService.java - Delivery records
notification-service/notification-service/src/main/java/com/tp/snapseat/notification_service/repository/NotificationRecordRepository.java - Email delivery
notification-service/notification-service/src/main/java/com/tp/snapseat/notification_service/service/EmailService.java
Other components
- Customer
Connections 18
- Customer → API gateway: requests
- Customer → JWT authentication: logs in
- Event management → Event catalog logic: delegates to
event-service/event-service-updated-fixed/src/main/java/com/tp/snapseat/event_service/controller/EventController.java - Show and seat APIs → Show management: delegates to
event-service/event-service-updated-fixed/src/main/java/com/tp/snapseat/event_service/controller/ShowController.java - Customer → Customer booking API: books seats
booking-service/src/main/java/com/tp/snapseat/booking_service/controller/BookingController.java - Customer booking API → Booking operations: calls
booking-service/src/main/java/com/tp/snapseat/booking_service/controller/BookingController.java - Internal booking API → Booking operations: calls
booking-service/src/main/java/com/tp/snapseat/booking_service/controller/InternalBookingController.java - Booking operations → Booking state: manages
- Booking operations → Event service client: queries
- Payment API → Payment operations: calls
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/controller/PaymentController.java - Payment operations → Payment records: persists
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/service/PaymentService.java - Payment operations → Booking service client: requests booking data
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/service/PaymentService.java - Booking service client → Internal booking API: calls
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/client/BookingServiceClient.java - Payment operations → Payment providers: uses
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/service/PaymentService.java - Payment operations → Payment events: publishes
payment-service/TicketHub_Payment_Microservice_Phase1_MySQL/tickethub-payment-service/src/main/java/com/tickethub/payment/service/PaymentService.java - Booking event consumer → Notification handling: dispatches
- Notification handling → Delivery records: records delivery
notification-service/notification-service/src/main/java/com/tp/snapseat/notification_service/service/NotificationService.java - Notification handling → Email delivery: sends email
notification-service/notification-service/src/main/java/com/tp/snapseat/notification_service/service/NotificationService.java