Skip to content

refactor: 주문 프로세서 가독성 개선 — 인라인 계측 분리 #119

Description

@ohhalim

목적

주문 처리 핵심 흐름(SyncOrderProcessor, AcceptedOrderProcessor)을 읽고 설명할 수 있는 구조로 정리한다. 비즈니스 로직과 계측 코드가 한 줄에 뒤섞여 흐름 파악이 어려운 문제를 해소한다.

배경

성능 측정은 이미 완료되어 README 병목 분석에 반영되었다. 그러나 측정을 위해 추가된 인라인 계측이 핵심 로직을 가린다.

  • stageRecorder.record("stage", () -> 실제호출) 가 줄마다 감싸 있어 비즈니스 로직이 람다 안에 파묻힘
  • OrderTransactionLifecycleRecorder 가 트랜잭션을 8단계 미세 구간으로 측정 — afterCommit/afterCompletion 콜백마다 transactionMetrics.recordXxx() 호출이 흩어져 있음 (README 미사용)

작업 범위

  • OrderTransactionLifecycleRecorder 제거 (8단계 트랜잭션 미세 계측)
  • SyncOrderProcessor / AcceptedOrderProcessor 에서 인라인 stageRecorder 호출 제거 → 핵심 흐름이 순차적으로 읽히도록 정리
  • 계측에만 쓰이던 파라미터(createStartedAt, processor side) 정리
  • OrderAssetLockService 내부 계측은 유지 (서비스 경계에 캡슐화되어 흐름을 가리지 않음)
  • MarketOrderCommandQueuecommand_queue_wait / queue.depth 등 운영 지표는 유지

완료 기준

  • SyncOrderProcessor.executeInTransaction 이 sequence→wallet lock→save→match→settle→orderbook 순서로 읽힘
  • ./gradlew test 통과 (동작/계약 변경 없음)

비범위 (후속)

  • SyncOrderProcessor/AcceptedOrderProcessor 공통 로직 단일 핸들러 통합
  • 얇은 래퍼 서비스(OrderAssetLockService) 정리

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions