Skip to content

INNER-CIRCLE-ICD4/Project-3.-O2O

Repository files navigation

ddak-ta

Matching Service Architecture

다음은 승객의 배차 요청부터 드라이버 매칭까지 이어지는 matching-service의 핵심 아키텍처 흐름을 나타낸 시퀀스 다이어그램입니다.

sequenceDiagram
    actor Passenger
    participant API Gateway
    participant Ride Service
    participant Matching Service
    participant Location Service
    participant Kafka
    participant Redis
    participant DB

    Passenger->>+API Gateway: POST /api/v1/rides (운행 요청)
    API Gateway->>+Ride Service: createRide(request)

    Ride Service->>+Redis: Check duplicate request
    Redis-->>-Ride Service: OK
    
    Ride Service->>+DB: Create Ride (status: REQUESTED)
    DB-->>-Ride Service: Ride created
    
    Ride Service->>-Kafka: Publish [RideRequestedEvent]
    API Gateway-->>-Passenger: HTTP 201 CREATED (요청 성공)

    Note right of Kafka: -- 비동기 처리 시작 --

    participant Scheduler
    Scheduler->>+Matching Service: trigger: processMatchingBatch()

    Matching Service->>+Redis: Acquire Distributed Lock
    Redis-->>-Matching Service: Lock acquired

    Matching Service->>+DB: Get pending requests (H3 그룹핑)
    DB-->>-Matching Service: Requests list

    Matching Service->>+Location Service: findNearbyDrivers(h3Index)
    Location Service-->>-Matching Service: Available drivers list

    Matching Service->>Matching Service: 비용 행렬 생성 및 헝가리안 알고리즘 실행
    
    Matching Service->>+DB: Update Ride (status: MATCHED)
    DB-->>-Matching Service: Ride updated

    Matching Service->>-Kafka: Publish [RideMatchedEvent]
    
    Matching Service->>+Redis: Release Distributed Lock
    Redis-->>-Matching Service: Lock released
Loading

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors