Skip to content
기능요금제제휴블로그도움말회사 소개문의하기
무료로 시작하기로그인
블로그로 돌아가기
guides2026-07-216 분 읽기

단일 재고, 세 마켓플레이스: Getir + Trendyol GO + Yemeksepeti 통합

이즈미르 알산자크의 4지점 되네르 체인이 세 개의 터키 배달 플랫폼을 단일 메뉴로 운영. thMenu 마스터 레코드, 웹훅 팬아웃, D1 원자적 UPDATE.

th

thMenu Team

thmenu.com

이즈미르 알산자크의 4지점 되네르 체인은 Getir Yemek, Trendyol GO, Yemeksepeti에 동시 연결되어 있다. 세 개의 별도 메뉴를 유지하는 대신 thMenu를 마스터 레코드로 사용; 재고 차감이 한 곳에서 일어나고 웹훅 팬아웃이 세 플랫폼을 갱신한다.

마스터 레코드 아키텍처

D1_MENU 테이블의 products.stock_quantity가 유일한 정규 소스. 주문 확정 시 원자적 UPDATE: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0행 영향 = 품절.

성공 시 이벤트가 Cloudflare Queue로 푸시. 세 worker가 병렬로 API를 PATCH. 평균 팬아웃 지연 340ms.

충돌 해결

시나리오: 재고 lahmacun 5개. 같은 초에 세 플랫폼에서 주문 5건 도착. 원자적 UPDATE가 직렬화 — 마지막 주문은 0을 만나 거부. 최종 상태 0, 세 "품절" 신호 팬아웃.

D1에 명시적 행 잠금은 없지만 WHERE stock > 0이 같은 역할. 6개월 동안 과다 판매 0건.

드리프트 조정

Yemeksepeti 웹훅은 30초 지연, Trendyol은 즉시, Getir는 5초 폴링. 시간별 cron이 세 플랫폼을 마스터와 비교.

  • Yemeksepeti 5, Getir 3: 마스터 5, Getir PATCH
  • 마스터 0, 플랫폼 2: 즉시 0 PATCH
  • 드리프트 > 3: Slack 알림

FAQ

각 플랫폼에 메뉴를 수동 입력해야 하나요? 아니요, 마스터 레코드 + 팬아웃이 모두 자동화.

레이스 컨디션 우선순위는? timestamp 순 FIFO, 패자는 422.

cron은 수동인가요? 아니요, Workers에서 매시간 자동, 큰 드리프트 시 Slack 알림.

도움이 되셨나요? 공유해 주세요.