AI Briefing
KO

Oliveyoung Sale First-Come Coupons: The Journey Toward 0% Non-Issuance

·2025.12.15 09:00

Key point

Oliveyoung sought to resolve coupon non-issuance issues caused by Time Gap and lack of atomicity in its asynchronous system by introducing a Redis Lua script.

1 / 2

Details

Oliveyoung's first-come-first-served coupon system adopts an asynchronous structure based on RabbitMQ and quantity management using Redis to handle massive traffic. However, during the Oliveyoung Sale operation in June 2025, a non-issuance problem occurred where processing failed at the actual worker even after passing the first validation.

The root cause of the problem was analyzed into three factors.

  • Time Gap: A race condition arising from the time gap between the first validation and the worker's second validation
  • Double Validation Overhead: The inefficiency of double validation occurring during asynchronous logic execution
  • Lack of Redis Atomicity: A race condition occurring because the GET and INCR commands are executed separately

To solve this, they first attempted a pre-deduction method that deducts quantity in advance at the front end, but confirmed that the atomicity problem still remained. Ultimately, they pursued an improvement by applying a Lua script, which can execute multiple commands as a single atomic unit, to secure data consistency.

This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.

Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.