이즈미르 알산자크의 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 알림.
도움이 되셨나요? 공유해 주세요.
관련 기사
QR 코드 메뉴란 무엇인가? 레스토랑을 위한 완벽 가이드
QR 메뉴를 사용하면 고객이 스마트폰으로 메뉴에 즉시 접근할 수 있습니다. 앱 불필요, 종이 불필요, 인쇄 비용 없음. 시작하기 위해 알아야 할…
종이 메뉴에서 QR 디지털 메뉴로 전환하기: 단계별 가이드
QR 메뉴를 도입하고 싶지만 어디서부터 시작해야 할지 모르시나요? 촬영, 콘텐츠 이전, QR 코드 인쇄, 직원 교육, 오픈 당일 체크리스트까지 …
지역 타기팅 QR 메뉴: 방문자 IP로 언어 다르게 제공
안탈리아 라라의 180석 올인클루시브 리조트가 Cloudflare Workers와 CF-IPCountry로 같은 QR을 터키어·독일어·러시아어 …