Skip to content

[HSC-424] user-log admin dispatch 실패건 저장 및 retry 처리 #279

@tkv00

Description

@tkv00

🎟️ 상위 작업 (Ticket Number)

HSC-303

Type (필수)

⚡ perf

Area (필수)

🗂️ area: BE

Priority (필수)

🔥 priority: P0

Team (필수)

Customer Team

📅 시작 날짜

2026-04-01

🏁 종료 날짜

2026-04-01

📝 상세 내용(Description)

  • AbortPolicy 적용 이후 user-log request path는 보호되었지만, adminLogFeatureTaskExecutor 포화 시 rejected가 명시적으로 드러나기 시작했다.
  • 현재는 이 reject가 metric과 로그로만 보이고 실제 복구 가능한 실패건으로 저장되지 않기 때문에, 최종 churn 반영 유실로 그대로 남는다.
  • 이번 이슈의 목적은 reject 및 admin dispatch 실패건을 저장 가능한 구조로 전환하고, scheduler 기반 retry를 통해 실제 member_action_feature 반영률이 얼마나 회복되는지 다시 검증하는 것이다.

핵심 범위는 아래와 같다.

  • user_log_admin_dispatch_outbox 테이블 및 상태값 도입
  • rejected / non_2xx / error 실패건 저장
  • READY -> PROCESSING -> ACKED/RETRY/DEAD 상태 전이 구현
  • FOR UPDATE SKIP LOCKED 기반 claim 및 scheduler retry 구현

✅ 체크리스트(Tasks)

  • user_log_dispatch_status enum 및 user_log_admin_dispatch_outbox 스키마 추가
  • admin dispatch 실패건 저장 로직 추가 (rejected, non_2xx, error)
  • outbox status 전이 및 attempt_count, next_retry_at, last_error 처리
  • FOR UPDATE SKIP LOCKED 기반 retry 대상 claim 쿼리 구현
  • UserLogAdminDispatchSchedulerdispatchReadyBatch() 구현
  • retry 성공/실패 결과에 따른 ACKED, RETRY, DEAD 반영

Metadata

Metadata

Assignees

No one assigned

    Labels

    Customer Team⚡ perf성능 개선(쿼리/캐시/병목 제거 등)🔥 priority: P0즉시 처리 필요(서비스/데모 블로커)🗂️ area: BE백엔드 영역

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions