# satyam6203/airlink architecture

> Architecture diagram of the GitHub repository satyam6203/airlink, 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/satyam6203/airlink
- Repository: https://github.com/satyam6203/airlink

## Overview

AirLink is an airline reservation platform organized as a React client and Spring Boot microservices. The principal traveler workflow is flight search, seat selection and pending booking, payment, then event-driven confirmation or cancellation and notification. Separate operational capabilities manage airline, airport, flight and schedule inventory, pricing, and ancillary products; authentication and gateway routing support the APIs. The README describes Search, Notification, Redis, and Saga behavior that is not represented in the supplied source excerpts, so those relationships are documented rather than verified in code.

Main entry points: [`Microservices/cloud/api-gateway/src/main/java/com/AirLine/ApiGatewayApplication.java`](https://github.com/satyam6203/airlink/blob/main/Microservices/cloud/api-gateway/src/main/java/com/AirLine/ApiGatewayApplication.java) (API gateway), [`Microservices/services/booking-service/src/main/java/com/AirLink/booking_service/Service/Impl/BookingServiceImpl.java`](https://github.com/satyam6203/airlink/blob/main/Microservices/services/booking-service/src/main/java/com/AirLink/booking_service/Service/Impl/BookingServiceImpl.java) (Booking service), [`airLink-frontend/src`](https://github.com/satyam6203/airlink/tree/main/airLink-frontend/src) (React frontend), [`Microservices/services/payment-service/src/main/java/com/AirLink/payment_service/Service/Impl/PaymentServiceImpl.java`](https://github.com/satyam6203/airlink/blob/main/Microservices/services/payment-service/src/main/java/com/AirLink/payment_service/Service/Impl/PaymentServiceImpl.java) (Payment service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client experience"]
  node_frontend["React frontend"]
  node_booking_review["Booking review<br/>[BookingReview.jsx]"]
end

subgraph group_edge["Gateway and identity"]
  node_gateway["API gateway"]
  node_auth["Authentication<br/>[AuthService.java]"]
  node_registry["Service registry"]
end

subgraph group_inventory["Flight inventory"]
  node_search["Flight search"]
  node_flight_ops["Flight operations<br/>[Flight.java]"]
  node_airline["Airline management<br/>[Airline.java]"]
  node_locations["Airport and city<br/>[Airport.java]"]
end

subgraph group_commerce["Booking and commerce"]
  node_pricing["Fare and baggage<br/>[Fare.java]"]
  node_booking["Booking service"]
  node_seats["Seat inventory"]
  node_ancillary["Ancillary products"]
  node_payment["Payment service"]
end

subgraph group_platform["Shared platform"]
  node_kafka["Kafka events"]
  node_notification["Notifications"]
  node_redis[("Search cache")]
  node_shared["Shared contracts"]
  node_mysql[("Service databases")]
end

node_traveler(("Traveler"))
node_gateway_provider["Payment gateway"]

node_traveler -->|"uses"| node_frontend
node_frontend -->|"sends requests"| node_gateway
node_gateway -->|"routes credentials"| node_auth
node_auth -->|"issues JWT"| node_traveler
node_gateway -->|"routes search"| node_search
node_search -->|"queries cache"| node_redis
node_frontend -->|"opens review"| node_booking_review
node_booking_review -->|"creates booking"| node_booking
node_booking -.->|"reserves seat"| node_seats
node_booking -->|"requests payment"| node_payment
node_payment -->|"processes charge"| node_gateway_provider
node_payment -->|"publishes outcome"| node_kafka
node_kafka -->|"delivers payment event"| node_booking
node_booking -->|"publishes booking event"| node_kafka
node_kafka -->|"delivers booking event"| node_notification
node_notification -->|"sends confirmation"| node_traveler
node_gateway -->|"routes admin APIs"| node_airline
node_gateway -->|"routes admin APIs"| node_locations
node_gateway -->|"routes flight APIs"| node_flight_ops
node_flight_ops -.->|"publishes inventory changes"| node_kafka
node_kafka -.->|"updates index"| node_search
node_gateway -.->|"routes fare APIs"| node_pricing
node_gateway -.->|"routes coverage APIs"| node_ancillary
node_frontend -.->|"discovers services"| node_registry
node_auth -.->|"stores identity data"| node_mysql
node_booking -.->|"stores bookings"| node_mysql
node_payment -.->|"stores payments"| node_mysql
node_booking -.->|"uses contracts"| node_shared

click node_frontend "https://github.com/satyam6203/airlink/tree/main/airLink-frontend/src"
click node_booking_review "https://github.com/satyam6203/airlink/blob/main/airLink-frontend/src/pages/traveler/BookingReview/BookingReview.jsx"
click node_gateway "https://github.com/satyam6203/airlink/blob/main/Microservices/cloud/api-gateway/src/main/java/com/AirLine/ApiGatewayApplication.java"
click node_auth "https://github.com/satyam6203/airlink/blob/main/Microservices/services/user-service/src/main/java/com/airlink/user_service/Service/AuthService.java"
click node_registry "https://github.com/satyam6203/airlink/blob/main/Microservices/cloud/service-registry/src/main/java/com/AirLink/service_registry/ServiceRegistryApplication.java"
click node_search "https://github.com/satyam6203/airlink/tree/main/Microservices/services"
click node_flight_ops "https://github.com/satyam6203/airlink/blob/main/Microservices/services/flight-ops-service/src/main/java/com/airlink/flight_ops_service/Model/Flight.java"
click node_airline "https://github.com/satyam6203/airlink/blob/main/Microservices/services/airline-core-service/src/main/java/com/airlink/airline_core_service/Model/Airline.java"
click node_locations "https://github.com/satyam6203/airlink/blob/main/Microservices/services/location-service/src/main/java/com/airline/Model/Airport.java"
click node_pricing "https://github.com/satyam6203/airlink/blob/main/Microservices/services/pricing-service/src/main/java/com/airlink/pricing_service/Model/Fare.java"
click node_booking "https://github.com/satyam6203/airlink/blob/main/Microservices/services/booking-service/src/main/java/com/AirLink/booking_service/Service/Impl/BookingServiceImpl.java"
click node_seats "https://github.com/satyam6203/airlink/blob/main/Microservices/services/seat-service/src/main/java/com/arilink/seat_service/Service/FlightInstanceService.java"
click node_ancillary "https://github.com/satyam6203/airlink/blob/main/Microservices/services/ancillary-service/src/main/java/com/airline/ancillary_service/Controller/InsuranceCoverageController.java"
click node_payment "https://github.com/satyam6203/airlink/blob/main/Microservices/services/payment-service/src/main/java/com/AirLink/payment_service/Service/Impl/PaymentServiceImpl.java"
click node_notification "https://github.com/satyam6203/airlink/tree/main/Microservices/services"
click node_redis "https://github.com/satyam6203/airlink/tree/main/Microservices/services"
click node_shared "https://github.com/satyam6203/airlink/tree/main/Microservices/common-lib/src/main/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_frontend,node_booking_review toneBlue
class node_gateway,node_auth,node_registry toneAmber
class node_search,node_flight_ops,node_airline,node_locations toneMint
class node_pricing,node_booking,node_seats,node_ancillary,node_payment toneRose
class node_kafka,node_notification,node_redis,node_shared,node_mysql,node_traveler,node_gateway_provider toneIndigo
```

## Components

### Client experience

- [React frontend](https://github.com/satyam6203/airlink/tree/main/airLink-frontend/src): `airLink-frontend/src`
- [Booking review](https://github.com/satyam6203/airlink/blob/main/airLink-frontend/src/pages/traveler/BookingReview/BookingReview.jsx): `airLink-frontend/src/pages/traveler/BookingReview/BookingReview.jsx`

### Gateway and identity

- [API gateway](https://github.com/satyam6203/airlink/blob/main/Microservices/cloud/api-gateway/src/main/java/com/AirLine/ApiGatewayApplication.java): `Microservices/cloud/api-gateway/src/main/java/com/AirLine/ApiGatewayApplication.java`
- [Authentication](https://github.com/satyam6203/airlink/blob/main/Microservices/services/user-service/src/main/java/com/airlink/user_service/Service/AuthService.java): `Microservices/services/user-service/src/main/java/com/airlink/user_service/Service/AuthService.java`
- [Service registry](https://github.com/satyam6203/airlink/blob/main/Microservices/cloud/service-registry/src/main/java/com/AirLink/service_registry/ServiceRegistryApplication.java): `Microservices/cloud/service-registry/src/main/java/com/AirLink/service_registry/ServiceRegistryApplication.java`

### Flight inventory

- [Flight search](https://github.com/satyam6203/airlink/tree/main/Microservices/services): `Microservices/services`
- [Flight operations](https://github.com/satyam6203/airlink/blob/main/Microservices/services/flight-ops-service/src/main/java/com/airlink/flight_ops_service/Model/Flight.java): `Microservices/services/flight-ops-service/src/main/java/com/airlink/flight_ops_service/Model/Flight.java`
- [Airline management](https://github.com/satyam6203/airlink/blob/main/Microservices/services/airline-core-service/src/main/java/com/airlink/airline_core_service/Model/Airline.java): `Microservices/services/airline-core-service/src/main/java/com/airlink/airline_core_service/Model/Airline.java`
- [Airport and city](https://github.com/satyam6203/airlink/blob/main/Microservices/services/location-service/src/main/java/com/airline/Model/Airport.java): `Microservices/services/location-service/src/main/java/com/airline/Model/Airport.java`

### Booking and commerce

- [Fare and baggage](https://github.com/satyam6203/airlink/blob/main/Microservices/services/pricing-service/src/main/java/com/airlink/pricing_service/Model/Fare.java): `Microservices/services/pricing-service/src/main/java/com/airlink/pricing_service/Model/Fare.java`
- [Booking service](https://github.com/satyam6203/airlink/blob/main/Microservices/services/booking-service/src/main/java/com/AirLink/booking_service/Service/Impl/BookingServiceImpl.java): `Microservices/services/booking-service/src/main/java/com/AirLink/booking_service/Service/Impl/BookingServiceImpl.java`
- [Seat inventory](https://github.com/satyam6203/airlink/blob/main/Microservices/services/seat-service/src/main/java/com/arilink/seat_service/Service/FlightInstanceService.java): `Microservices/services/seat-service/src/main/java/com/arilink/seat_service/Service/FlightInstanceService.java`
- [Ancillary products](https://github.com/satyam6203/airlink/blob/main/Microservices/services/ancillary-service/src/main/java/com/airline/ancillary_service/Controller/InsuranceCoverageController.java): `Microservices/services/ancillary-service/src/main/java/com/airline/ancillary_service/Controller/InsuranceCoverageController.java`
- [Payment service](https://github.com/satyam6203/airlink/blob/main/Microservices/services/payment-service/src/main/java/com/AirLink/payment_service/Service/Impl/PaymentServiceImpl.java): `Microservices/services/payment-service/src/main/java/com/AirLink/payment_service/Service/Impl/PaymentServiceImpl.java`

### Shared platform

- **Kafka events**
- [Notifications](https://github.com/satyam6203/airlink/tree/main/Microservices/services): `Microservices/services`
- [Search cache](https://github.com/satyam6203/airlink/tree/main/Microservices/services): `Microservices/services`
- [Shared contracts](https://github.com/satyam6203/airlink/tree/main/Microservices/common-lib/src/main/java): `Microservices/common-lib/src/main/java`
- **Service databases**

### Other components

- **Traveler**
- **Payment gateway**

## Connections

- Traveler → React frontend: uses (evidence: `README.md`)
- React frontend → API gateway: sends requests (evidence: `README.md`)
- API gateway → Authentication: routes credentials (evidence: `README.md`)
- Authentication → Traveler: issues JWT (evidence: `README.md`)
- API gateway → Flight search: routes search (evidence: `README.md`)
- Flight search → Search cache: queries cache (evidence: `README.md`)
- React frontend → Booking review: opens review (evidence: `airLink-frontend/src/App.jsx`)
- Booking review → Booking service: creates booking (evidence: `airLink-frontend/src/pages/traveler/BookingReview/BookingReview.jsx`)
- Booking service → Seat inventory: reserves seat
- Booking service → Payment service: requests payment (evidence: `README.md`)
- Payment service → Payment gateway: processes charge (evidence: `README.md`)
- Payment service → Kafka events: publishes outcome (evidence: `README.md`)
- Kafka events → Booking service: delivers payment event (evidence: `README.md`)
- Booking service → Kafka events: publishes booking event (evidence: `README.md`)
- Kafka events → Notifications: delivers booking event (evidence: `README.md`)
- Notifications → Traveler: sends confirmation (evidence: `README.md`)
- API gateway → Airline management: routes admin APIs (evidence: `README.md`)
- API gateway → Airport and city: routes admin APIs (evidence: `README.md`)
- API gateway → Flight operations: routes flight APIs (evidence: `README.md`)
- Flight operations → Kafka events: publishes inventory changes
- Kafka events → Flight search: updates index
- API gateway → Fare and baggage: routes fare APIs
- API gateway → Ancillary products: routes coverage APIs
- React frontend → Service registry: discovers services
- Authentication → Service databases: stores identity data
- Booking service → Service databases: stores bookings
- Payment service → Service databases: stores payments
- Booking service → Shared contracts: uses contracts
