How java-up-up/damai works
DAMAI is a high-concurrency ticket-booking microservice system. Its documented user journey runs from browsing programs and selecting seats through ordering, payment, and order lookup; the repository also includes user registration, captcha, rule-based gateway throttling, and shared infrastructure. The graph preserves those major capabilities and key runtime support. Several subsystem connections are documented only in the README; unsampled implementation details and dynamic wiring are not inferred.
Main entry points: ProgramService.java Program catalog · OrderService.java Order lifecycle · service API gateway · UserService.java User accounts
Components 25
Booking experience
- Vue web app
vue3/src/main.js - Ticket buyer
Business services
- API gateway
damai-server/damai-gateway-service/src/main/java/com/damai/service - User accounts
damai-server/damai-user-service/src/main/java/com/damai/service/UserService.java - Captcha
damai-captcha-manage-framework/damai-captcha-framework/src/main/java/com/damai/controller/CaptchaController.java - Program catalog
damai-server/damai-program-service/src/main/java/com/damai/service/ProgramService.java - Seat inventory
damai-server/damai-program-service/src/main/java/com/damai/service/SeatService.java - Order lifecycle
damai-server/damai-order-service/src/main/java/com/damai/service/OrderService.java - Payment and refunds
damai-server/damai-pay-service/src/main/java/com/damai/service - Area data
damai-server/damai-base-data-service/src/main/java/com/damai/service/AreaService.java - Search service
damai-elasticsearch-framework/src/main/java/com/damai/util/BusinessEsHandle.java
Shared platform
- Service clients
damai-server-client - Redis cache
damai-redis-tool-framework/damai-redis-framework/src/main/java/com/damai/redis/RedisCache.java - UID generator
damai-id-generator-framework/src/main/java/com/baidu/fsg/uid/UidGenerator.java - API responses
damai-common/src/main/java/com/damai/common/ApiResponse.java - Business errors
damai-common/src/main/java/com/damai/enums/BaseCode.java - Common utilities
damai-common/src/main/java/com/damai/util - Elasticsearch
- Redis
Concurrency and governance
- Rule management
damai-server/damai-customize-service/src/main/java/com/damai/service/RuleService.java - API throttling
damai-server/damai-gateway-service/src/main/java/com/damai/service/ApiRestrictService.java - Delayed queue
damai-redisson-framework/damai-service-delay-queue-framework/src/main/java/com/damai/core - Distributed locks
damai-redisson-framework/damai-redisson-service-framework/damai-service-lock-framework/src/main/java/com/damai/servicelock - Redis streams
damai-redis-tool-framework/damai-redis-stream-framework/src/main/java/com/damai
Other components
- Customer
Connections 30
- Customer → Vue web app: browses and books
README.md - Vue web app → API gateway: sends requests
- API gateway → User accounts: routes requests
- API gateway → Program catalog: routes requests
- API gateway → Order lifecycle: routes requests
- API gateway → Captcha: routes verification
- User accounts → Captcha: uses verification
- Customer → Program catalog: browses programs
README.md - Customer → Seat inventory: selects seats
README.md - Customer → Order lifecycle: places orders
README.md - Order lifecycle → Payment and refunds: initiates payment
README.md - Customer → Order lifecycle: queries orders
README.md - Program catalog → Area data: gets area data
damai-server/damai-program-service/src/main/java/com/damai/service/ProgramService.java - Program catalog → Service clients: calls base client
damai-server/damai-program-service/src/main/java/com/damai/service/ProgramService.java - Order lifecycle → Service clients: calls pay and user clients
damai-server/damai-order-service/src/main/java/com/damai/service/OrderService.java - User accounts → Service clients: calls base client
damai-server/damai-user-service/src/main/java/com/damai/service/UserService.java - User accounts → Redis cache: reads and writes
damai-server/damai-user-service/src/main/java/com/damai/service/UserService.java - Program catalog → Redis cache: reads cache
damai-server/damai-program-service/src/main/java/com/damai/service/ProgramService.java - Rule management → Redis cache: stores rule cache
damai-server/damai-customize-service/src/main/java/com/damai/service/RuleService.java - API throttling → Redis cache: checks limits
damai-server/damai-gateway-service/src/main/java/com/damai/service/ApiRestrictService.java - API throttling → Rule management: loads rules
- Order lifecycle → UID generator: generates identifiers
damai-server/damai-order-service/src/main/java/com/damai/service/OrderService.java - Program catalog → UID generator: generates identifiers
damai-server/damai-program-service/src/main/java/com/damai/service/ProgramService.java - User accounts → UID generator: generates identifiers
damai-server/damai-user-service/src/main/java/com/damai/service/UserService.java - Order lifecycle → Distributed locks: locks order updates
damai-server/damai-order-service/src/main/java/com/damai/service/OrderService.java - Program catalog → Redis streams: pushes messages
damai-server/damai-program-service/src/main/java/com/damai/service/ProgramService.java - Program catalog → Search service: supports search
- Search service → Elasticsearch: indexes and searches
README.md - Redis cache → Redis: stores data
README.md - Ticket buyer → Order lifecycle: receives order outcome
README.md