# qzlabq/travelon architecture

> Architecture diagram of the GitHub repository qzlabq/travelon, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/qzlabq/travelon
- Repository: https://github.com/qzlabq/travelon

## Overview

TravelOn is a microservice travel platform spanning trip planning, product discovery, reservations, and post-trip community sharing. The main user flow enters through the API gateway; planning is a distinct AI-assisted branch, while product search and booking are separate service stages. The README documents service and infrastructure connections; sampled source confirms selected internal controller/service and authorization behavior, but most service wiring was not sampled.

Main entry points: [`travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice`](https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice) (Planner Service), [`travel-api/user-service`](https://github.com/qzlabq/travelon/tree/main/travel-api/user-service) (User Service), [`travel-api/api-gateway/src/main/java/org/microarchitecturovisco/apigateway/ApiGatewayApplication.java`](https://github.com/qzlabq/travelon/blob/main/travel-api/api-gateway/src/main/java/org/microarchitecturovisco/apigateway/ApiGatewayApplication.java) (API Gateway), [`travel-api/travel-core-service`](https://github.com/qzlabq/travelon/tree/main/travel-api/travel-core-service) (Travel Products)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Platform Entry"]
  node_gateway["API Gateway"]
  node_users["User Service"]
end

subgraph group_planning["AI Planning"]
  node_ai_service["Planner Service"]
  node_planner_agent["Planner Agent<br/>[main.py]"]
  node_planner_tools["Travel Tools"]
  node_planner_state[("Planner State")]
end

subgraph group_commerce["Travel Commerce"]
  node_travel_core["Travel Products"]
  node_transport_query["Transport Search"]
  node_transport_service["Transport Queries"]
  node_orders["Reservations"]
end

subgraph group_community["Community"]
  node_community_service["Community Service"]
  node_community_controller["Community API"]
  node_community_routes["Routes And Reviews"]
  node_community_media["Image Uploads"]
end

subgraph group_infrastructure["Shared Infrastructure"]
  node_discovery["Service Discovery"]
  node_postgres[("PostgreSQL")]
  node_mongo[("MongoDB")]
  node_rabbit["RabbitMQ"]
end

node_traveler(("Traveler"))
node_model_provider["AI Model"]
node_amap["Amap Services"]

node_traveler -->|"sends requests"| node_gateway
node_gateway -->|"routes planning"| node_ai_service
node_gateway -->|"routes product search"| node_travel_core
node_gateway -->|"routes reservations"| node_orders
node_gateway -->|"routes community"| node_community_service
node_gateway -->|"routes accounts"| node_users
node_ai_service -->|"runs planner"| node_planner_agent
node_planner_agent -->|"dispatches tools"| node_planner_tools
node_planner_agent -.->|"requests completions"| node_model_provider
node_ai_service -->|"stores conversations"| node_planner_state
node_ai_service -.->|"enriches places"| node_amap
node_travel_core -->|"exposes transport API"| node_transport_query
node_transport_query -->|"queries offers"| node_transport_service
node_community_service -->|"exposes community API"| node_community_controller
node_community_controller -->|"handles route requests"| node_community_routes
node_community_controller -->|"stores uploads"| node_community_media
node_ai_service -.->|"registers service"| node_discovery
node_travel_core -.->|"registers service"| node_discovery
node_orders -.->|"registers service"| node_discovery
node_community_service -.->|"registers service"| node_discovery
node_users -.->|"registers service"| node_discovery
node_travel_core -.->|"reads and writes"| node_postgres
node_orders -.->|"reads and writes"| node_postgres
node_community_service -.->|"reads and writes"| node_postgres
node_users -.->|"reads and writes"| node_postgres
node_ai_service -.->|"stores snapshots"| node_mongo
node_travel_core -.->|"exchanges messages"| node_rabbit
node_orders -.->|"exchanges messages"| node_rabbit
node_users -.->|"publishes events"| node_rabbit
node_ai_service -.->|"exchanges messages"| node_rabbit
node_community_service -.->|"checks profiles"| node_users
node_orders -.->|"checks identity"| node_users
node_travel_core -.->|"checks admin access"| node_users

click node_gateway "https://github.com/qzlabq/travelon/blob/main/travel-api/api-gateway/src/main/java/org/microarchitecturovisco/apigateway/ApiGatewayApplication.java"
click node_ai_service "https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice"
click node_planner_agent "https://github.com/qzlabq/travelon/blob/main/travel-api/ai-arrange-agent-service/app/main.py"
click node_planner_tools "https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-agent-service/app/tools"
click node_planner_state "https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice/domain/document"
click node_travel_core "https://github.com/qzlabq/travelon/tree/main/travel-api/travel-core-service"
click node_transport_query "https://github.com/qzlabq/travelon/blob/main/travel-api/travel-core-service/src/main/java/org/microarchitecturovisco/hotelservice/transport/controllers/TransportsQueryController.java"
click node_transport_service "https://github.com/qzlabq/travelon/blob/main/travel-api/travel-core-service/src/main/java/org/microarchitecturovisco/hotelservice/transport/services/TransportsQueryService.java"
click node_orders "https://github.com/qzlabq/travelon/tree/main/travel-api/order-service"
click node_community_service "https://github.com/qzlabq/travelon/tree/main/travel-api/community-service"
click node_community_controller "https://github.com/qzlabq/travelon/blob/main/travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/controller/CommunityController.java"
click node_community_routes "https://github.com/qzlabq/travelon/blob/main/travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/service/TravelRouteService.java"
click node_community_media "https://github.com/qzlabq/travelon/blob/main/travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/service/FileStorageService.java"
click node_users "https://github.com/qzlabq/travelon/tree/main/travel-api/user-service"
click node_discovery "https://github.com/qzlabq/travelon/blob/main/travel-api/discovery-service/src/main/java/org/microarchitecturovisco/discoveryservice/DiscoveryServiceApplication.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_gateway,node_users toneBlue
class node_ai_service,node_planner_agent,node_planner_tools,node_planner_state toneAmber
class node_travel_core,node_transport_query,node_transport_service,node_orders toneMint
class node_community_service,node_community_controller,node_community_routes,node_community_media toneRose
class node_discovery,node_postgres,node_mongo,node_rabbit,node_traveler,node_model_provider,node_amap toneIndigo
```

## Components

### Platform Entry

- [API Gateway](https://github.com/qzlabq/travelon/blob/main/travel-api/api-gateway/src/main/java/org/microarchitecturovisco/apigateway/ApiGatewayApplication.java): `travel-api/api-gateway/src/main/java/org/microarchitecturovisco/apigateway/ApiGatewayApplication.java`
- [User Service](https://github.com/qzlabq/travelon/tree/main/travel-api/user-service): `travel-api/user-service`

### AI Planning

- [Planner Service](https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice): `travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice`
- [Planner Agent](https://github.com/qzlabq/travelon/blob/main/travel-api/ai-arrange-agent-service/app/main.py): `travel-api/ai-arrange-agent-service/app/main.py`
- [Travel Tools](https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-agent-service/app/tools): `travel-api/ai-arrange-agent-service/app/tools`
- [Planner State](https://github.com/qzlabq/travelon/tree/main/travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice/domain/document): `travel-api/ai-arrange-service/src/main/java/org/microarchitecturovisco/aiarrangeservice/domain/document`

### Travel Commerce

- [Travel Products](https://github.com/qzlabq/travelon/tree/main/travel-api/travel-core-service): `travel-api/travel-core-service`
- [Transport Search](https://github.com/qzlabq/travelon/blob/main/travel-api/travel-core-service/src/main/java/org/microarchitecturovisco/hotelservice/transport/controllers/TransportsQueryController.java): `travel-api/travel-core-service/src/main/java/org/microarchitecturovisco/hotelservice/transport/controllers/TransportsQueryController.java`
- [Transport Queries](https://github.com/qzlabq/travelon/blob/main/travel-api/travel-core-service/src/main/java/org/microarchitecturovisco/hotelservice/transport/services/TransportsQueryService.java): `travel-api/travel-core-service/src/main/java/org/microarchitecturovisco/hotelservice/transport/services/TransportsQueryService.java`
- [Reservations](https://github.com/qzlabq/travelon/tree/main/travel-api/order-service): `travel-api/order-service`

### Community

- [Community Service](https://github.com/qzlabq/travelon/tree/main/travel-api/community-service): `travel-api/community-service`
- [Community API](https://github.com/qzlabq/travelon/blob/main/travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/controller/CommunityController.java): `travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/controller/CommunityController.java`
- [Routes And Reviews](https://github.com/qzlabq/travelon/blob/main/travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/service/TravelRouteService.java): `travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/service/TravelRouteService.java`
- [Image Uploads](https://github.com/qzlabq/travelon/blob/main/travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/service/FileStorageService.java): `travel-api/community-service/src/main/java/org/microarchitecturovisco/communityservice/service/FileStorageService.java`

### Shared Infrastructure

- [Service Discovery](https://github.com/qzlabq/travelon/blob/main/travel-api/discovery-service/src/main/java/org/microarchitecturovisco/discoveryservice/DiscoveryServiceApplication.java): `travel-api/discovery-service/src/main/java/org/microarchitecturovisco/discoveryservice/DiscoveryServiceApplication.java`
- **PostgreSQL**
- **MongoDB**
- **RabbitMQ**

### Other components

- **Traveler**
- **AI Model**
- **Amap Services**

## Connections

- Traveler → API Gateway: sends requests
- API Gateway → Planner Service: routes planning
- API Gateway → Travel Products: routes product search
- API Gateway → Reservations: routes reservations
- API Gateway → Community Service: routes community
- API Gateway → User Service: routes accounts
- Planner Service → Planner Agent: runs planner
- Planner Agent → Travel Tools: dispatches tools
- Planner Agent → AI Model: requests completions
- Planner Service → Planner State: stores conversations
- Planner Service → Amap Services: enriches places
- Travel Products → Transport Search: exposes transport API
- Transport Search → Transport Queries: queries offers
- Community Service → Community API: exposes community API
- Community API → Routes And Reviews: handles route requests
- Community API → Image Uploads: stores uploads
- Planner Service → Service Discovery: registers service
- Travel Products → Service Discovery: registers service
- Reservations → Service Discovery: registers service
- Community Service → Service Discovery: registers service
- User Service → Service Discovery: registers service
- Travel Products → PostgreSQL: reads and writes
- Reservations → PostgreSQL: reads and writes
- Community Service → PostgreSQL: reads and writes
- User Service → PostgreSQL: reads and writes
- Planner Service → MongoDB: stores snapshots
- Travel Products → RabbitMQ: exchanges messages
- Reservations → RabbitMQ: exchanges messages
- User Service → RabbitMQ: publishes events
- Planner Service → RabbitMQ: exchanges messages
- Community Service → User Service: checks profiles
- Reservations → User Service: checks identity
- Travel Products → User Service: checks admin access
