How good-ticket-service/ticket works
Ticket is a ticket-booking MSA with a React client and Spring services. A typical customer flow is to browse performances, authenticate, enter the waiting room, select and hold seats, then pay and track the reservation; sellers and admins also manage schedules, settlements, refunds, payouts, and coupons. The graph preserves those documented capabilities, plus the fake payment gateway and shared authentication layer. Some service internals were not sampled, so those links are documented or left unverified rather than inferred from module names.
Main entry points: reservation Reservation and seats · gateway Gateway · payment Payment service · App.tsx Ticket web app
Components 19
Client
- Ticket web app
frontend/src/App.tsx
Identity and access
- Gateway
backend/gateway-service/src/main/java/com/sparta/ticket/gateway - User and auth
backend/user-service/src/main/java/com/sparta/ticket/user
Discovery and booking
- Performance catalog
backend/performance-service/src/main/java/com/sparta/ticket/performance - Waiting room
backend/waiting-room-service/src/main/java/com/sparta/ticket/waitingroom - Reservation and seats
backend/reservation-service/src/main/java/com/sparta/ticket/reservation - Coupons
backend/reservation-service/src/main/java/com/sparta/ticket/reservation/coupon
Payments and finance
- Payment service
backend/payment-service/src/main/java/com/sparta/ticket/payment - Fake payment gateway
backend/fake-pg/src/main/java/com/sparta/ticket/fakepg - Settlement and payouts
backend/payment-service/src/main/java/com/sparta/ticket/payment/application/service/settlement - Refund operations
backend/payment-service/src/main/java/com/sparta/ticket/payment/application/service/refund
Shared platform
- Service databases
- Redis state
- Common contracts
backend/common-core/src/main/java/com/sparta/ticket/common/exception/BusinessException.java - Configuration server
backend/config-server/src/main/java/com/sparta/ticket/config/ConfigServerApplication.java - Service registry
backend/eureka-server/src/main/java/com/sparta/ticket/eureka/EurekaServerApplication.java
Other components
- Customer
- Seller
- Administrator
Connections 25
- Customer → Ticket web app: uses
frontend/src/App.tsx - Seller → Ticket web app: uses
frontend/src/App.tsx - Administrator → Ticket web app: uses
frontend/src/App.tsx - Ticket web app → Gateway: API requests
- Gateway → User and auth: verifies user
README.md - Gateway → Waiting room: checks queue token
README.md - User and auth → Service databases: reads and writes
- Performance catalog → Service databases: queries catalog
backend/performance-service/src/main/java/com/sparta/ticket/performance/infrastructure/persistence/PublicPerformanceQueryRepository.java - Waiting room → Redis state: stores queue state
README.md - Reservation and seats → Redis state: holds seats
README.md - Reservation and seats → Payment service: requests payment
- Reservation and seats → Payment service: checks payment state
- Reservation and seats → Service databases: reads reservations
backend/reservation-service/src/main/java/com/sparta/ticket/reservation/booking/application/query/ReservationQueryService.java - Reservation and seats → Service databases: reads seat state
- Reservation and seats → Reservation and seats: checks booking state
backend/reservation-service/src/main/java/com/sparta/ticket/reservation/seat/application/SelectableSeatQueryService.java - Coupons → Redis state: reads issue state
backend/reservation-service/src/main/java/com/sparta/ticket/reservation/coupon/application/CouponQueryService.java - Coupons → Service databases: reads coupons
backend/reservation-service/src/main/java/com/sparta/ticket/reservation/coupon/application/CouponQueryService.java - Payment service → Fake payment gateway: calls PG API
- Fake payment gateway → Service databases: stores transactions
- Payment service → Settlement and payouts: posts settlement
backend/payment-service/src/main/java/com/sparta/ticket/payment/presentation/seller/SellerSettlementPreviewController.java - Refund operations → Fake payment gateway: requests cancellation
- Gateway → Service registry: discovers services
- Gateway → Common contracts: uses user headers
README.md - User and auth → Common contracts: uses error contracts
backend/user-service/src/main/java/com/sparta/ticket/user/application/UserQueryService.java - Configuration server → Gateway: supplies configuration
README.md