# meghanar1306-glitch/tickethub-microservices architecture

> Architecture diagram of the GitHub repository meghanar1306-glitch/tickethub-microservices, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/meghanar1306-glitch/tickethub-microservices
- Repository: https://github.com/meghanar1306-glitch/tickethub-microservices

## Overview

TicketHub is a microservices ticket-booking platform. Users authenticate, browse event/show and venue information, reserve seats through bookings, pay, and receive booking notifications. The tree also shows administration, payment reconciliation and compensation, notification retries, and gateway JWT validation. The excerpts establish selected internal calls; cross-service HTTP and Kafka wiring is not shown, so those relationships are represented as unverified dashed edges rather than asserted call paths.

Main entry points: [`payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentService.java`](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentService.java) (Payment Lifecycle), [`notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java`](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java) (Notification Processing), [`auth-service/src/main/java/com/tickethub/auth`](https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/auth-service/src/main/java/com/tickethub/auth) (Identity and Admin), [`booking-service/src/main/java/com/tickethub/booking/service/BookingService.java`](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/service/BookingService.java) (Booking Lifecycle)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Identity"]
  node_auth["Identity and Admin"]
  node_jwt["JWT Issuance<br/>[JwtService.java]"]
  node_audit["Security Audit<br/>[AuditService.java]"]
end

subgraph group_catalog["Events and Venues"]
  node_events["Event Catalog"]
  node_shows["Show and Seat Management<br/>[ShowService.java]"]
  node_venues["Venue Administration"]
end

subgraph group_booking["Booking and Payment"]
  node_booking_api["Booking API"]
  node_booking_service["Booking Lifecycle"]
  node_booking_store[("Booking Records<br/>[Booking.java]")]
  node_payment_api["Payment API"]
  node_payment_service["Payment Lifecycle"]
  node_provider["Payment Provider"]
  node_payment_store[("Payment Records<br/>[Payment.java]")]
  node_payment_events["Payment Events"]
end

subgraph group_messaging["Notifications"]
  node_notification_consumer["Notification Consumer"]
  node_notification_service["Notification Processing"]
  node_notification_store[("Notification Records<br/>[Notification.java]")]
  node_email_templates["Email Templates"]
  node_email_delivery["Email Delivery"]
end

subgraph group_platform["Service Platform"]
  node_gateway["API Gateway"]
  node_discovery["Service Discovery"]
end

node_customer(("Customer or Admin"))
node_email_provider["SMTP or Log Mailer"]

node_customer -.->|"sends requests"| node_gateway
node_gateway -.->|"routes requests"| node_auth
node_customer -.->|"authenticates"| node_auth
node_auth -.->|"issues tokens"| node_jwt
node_auth -.->|"records actions"| node_audit
node_customer -.->|"browses events"| node_events
node_customer -.->|"selects seats"| node_shows
node_customer -->|"manages venues"| node_venues
node_venues -.->|"delegates to"| node_events
node_customer -.->|"creates booking"| node_booking_api
node_booking_api -->|"delegates to"| node_booking_service
node_booking_service -.->|"persists bookings"| node_booking_store
node_booking_service -.->|"reserves seats"| node_shows
node_customer -.->|"pays booking"| node_payment_api
node_payment_api -.->|"delegates to"| node_payment_service
node_payment_service -->|"requests payment"| node_provider
node_payment_service -.->|"updates payment"| node_payment_store
node_payment_service -.->|"syncs result"| node_booking_service
node_payment_service -.->|"publishes events"| node_payment_events
node_payment_events -.->|"dispatches events"| node_notification_consumer
node_notification_consumer -.->|"handles event"| node_notification_service
node_notification_service -->|"saves records"| node_notification_store
node_notification_service -->|"builds content"| node_email_templates
node_notification_service -->|"sends email"| node_email_delivery
node_email_delivery -.->|"delivers message"| node_email_provider
node_gateway -.->|"finds services"| node_discovery

click node_gateway "https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/api-gateway/src/main/java/com/tickethub/gateway"
click node_auth "https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/auth-service/src/main/java/com/tickethub/auth"
click node_jwt "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/auth-service/src/main/java/com/tickethub/auth/security/JwtService.java"
click node_audit "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/auth-service/src/main/java/com/tickethub/auth/service/AuditService.java"
click node_events "https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/event-service/src/main/java/com/tickethub/eventshow/service"
click node_shows "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/event-service/src/main/java/com/tickethub/eventshow/service/ShowService.java"
click node_venues "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/event-service/src/main/java/com/tickethub/eventshow/controller/VenueController.java"
click node_booking_api "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/controller/BookingController.java"
click node_booking_service "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/service/BookingService.java"
click node_booking_store "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/entity/Booking.java"
click node_payment_api "https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/payment-service/src/main/java/com/tickethub/paymentservice/controller"
click node_payment_service "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentService.java"
click node_provider "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/provider/PaymentProviderClient.java"
click node_payment_store "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/entity/Payment.java"
click node_payment_events "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentEventPublisher.java"
click node_notification_consumer "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/kafka/NotificationConsumer.java"
click node_notification_service "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java"
click node_notification_store "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/entity/Notification.java"
click node_email_templates "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/EmailTemplateService.java"
click node_email_delivery "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/EmailDeliveryService.java"
click node_discovery "https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/eureka-server/src/main/java/com/tickethub/eureka/EurekaServerApplication.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth,node_jwt,node_audit toneBlue
class node_events,node_shows,node_venues toneAmber
class node_booking_api,node_booking_service,node_booking_store,node_payment_api,node_payment_service,node_provider,node_payment_store,node_payment_events toneMint
class node_notification_consumer,node_notification_service,node_notification_store,node_email_templates,node_email_delivery toneRose
class node_gateway,node_discovery,node_customer,node_email_provider toneIndigo
```

## Components

### Access and Identity

- [Identity and Admin](https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/auth-service/src/main/java/com/tickethub/auth): `auth-service/src/main/java/com/tickethub/auth`
- [JWT Issuance](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/auth-service/src/main/java/com/tickethub/auth/security/JwtService.java): `auth-service/src/main/java/com/tickethub/auth/security/JwtService.java`
- [Security Audit](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/auth-service/src/main/java/com/tickethub/auth/service/AuditService.java): `auth-service/src/main/java/com/tickethub/auth/service/AuditService.java`

### Events and Venues

- [Event Catalog](https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/event-service/src/main/java/com/tickethub/eventshow/service): `event-service/src/main/java/com/tickethub/eventshow/service`
- [Show and Seat Management](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/event-service/src/main/java/com/tickethub/eventshow/service/ShowService.java): `event-service/src/main/java/com/tickethub/eventshow/service/ShowService.java`
- [Venue Administration](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/event-service/src/main/java/com/tickethub/eventshow/controller/VenueController.java): `event-service/src/main/java/com/tickethub/eventshow/controller/VenueController.java`

### Booking and Payment

- [Booking API](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/controller/BookingController.java): `booking-service/src/main/java/com/tickethub/booking/controller/BookingController.java`
- [Booking Lifecycle](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/service/BookingService.java): `booking-service/src/main/java/com/tickethub/booking/service/BookingService.java`
- [Booking Records](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/booking-service/src/main/java/com/tickethub/booking/entity/Booking.java): `booking-service/src/main/java/com/tickethub/booking/entity/Booking.java`
- [Payment API](https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/payment-service/src/main/java/com/tickethub/paymentservice/controller): `payment-service/src/main/java/com/tickethub/paymentservice/controller`
- [Payment Lifecycle](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentService.java): `payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentService.java`
- [Payment Provider](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/provider/PaymentProviderClient.java): `payment-service/src/main/java/com/tickethub/paymentservice/provider/PaymentProviderClient.java`
- [Payment Records](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/entity/Payment.java): `payment-service/src/main/java/com/tickethub/paymentservice/entity/Payment.java`
- [Payment Events](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentEventPublisher.java): `payment-service/src/main/java/com/tickethub/paymentservice/service/PaymentEventPublisher.java`

### Notifications

- [Notification Consumer](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/kafka/NotificationConsumer.java): `notification-service/src/main/java/com/tickethub/notification/kafka/NotificationConsumer.java`
- [Notification Processing](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java): `notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java`
- [Notification Records](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/entity/Notification.java): `notification-service/src/main/java/com/tickethub/notification/entity/Notification.java`
- [Email Templates](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/EmailTemplateService.java): `notification-service/src/main/java/com/tickethub/notification/service/EmailTemplateService.java`
- [Email Delivery](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/notification-service/src/main/java/com/tickethub/notification/service/EmailDeliveryService.java): `notification-service/src/main/java/com/tickethub/notification/service/EmailDeliveryService.java`

### Service Platform

- [API Gateway](https://github.com/meghanar1306-glitch/tickethub-microservices/tree/main/api-gateway/src/main/java/com/tickethub/gateway): `api-gateway/src/main/java/com/tickethub/gateway`
- [Service Discovery](https://github.com/meghanar1306-glitch/tickethub-microservices/blob/main/eureka-server/src/main/java/com/tickethub/eureka/EurekaServerApplication.java): `eureka-server/src/main/java/com/tickethub/eureka/EurekaServerApplication.java`

### Other components

- **Customer or Admin**
- **SMTP or Log Mailer**

## Connections

- Customer or Admin → API Gateway: sends requests
- API Gateway → Identity and Admin: routes requests
- Customer or Admin → Identity and Admin: authenticates
- Identity and Admin → JWT Issuance: issues tokens (evidence: `auth-service/src/main/java/com/tickethub/auth/service/impl/AuthServiceImpl.java`)
- Identity and Admin → Security Audit: records actions (evidence: `auth-service/src/main/java/com/tickethub/auth/service/impl/AuthServiceImpl.java`)
- Customer or Admin → Event Catalog: browses events
- Customer or Admin → Show and Seat Management: selects seats
- Customer or Admin → Venue Administration: manages venues (evidence: `event-service/src/main/java/com/tickethub/eventshow/controller/VenueController.java`)
- Venue Administration → Event Catalog: delegates to (evidence: `event-service/src/main/java/com/tickethub/eventshow/controller/VenueController.java`)
- Customer or Admin → Booking API: creates booking
- Booking API → Booking Lifecycle: delegates to (evidence: `booking-service/src/main/java/com/tickethub/booking/controller/BookingController.java`)
- Booking Lifecycle → Booking Records: persists bookings
- Booking Lifecycle → Show and Seat Management: reserves seats
- Customer or Admin → Payment API: pays booking
- Payment API → Payment Lifecycle: delegates to (evidence: `payment-service/src/main/java/com/tickethub/paymentservice/controller/PaymentWebhookController.java`)
- Payment Lifecycle → Payment Provider: requests payment
- Payment Lifecycle → Payment Records: updates payment
- Payment Lifecycle → Booking Lifecycle: syncs result
- Payment Lifecycle → Payment Events: publishes events
- Payment Events → Notification Consumer: dispatches events
- Notification Consumer → Notification Processing: handles event
- Notification Processing → Notification Records: saves records (evidence: `notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java`)
- Notification Processing → Email Templates: builds content (evidence: `notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java`)
- Notification Processing → Email Delivery: sends email (evidence: `notification-service/src/main/java/com/tickethub/notification/service/NotificationService.java`)
- Email Delivery → SMTP or Log Mailer: delivers message
- API Gateway → Service Discovery: finds services
