TGViewer
Tech Stuff Tech Stuff @techstuff100 · 1.21K subscribers
Post #306 1.68K
جلوگیری از درخواست‌های تکراری با Idempotency

یکی از مشکلات رایج در سیستم‌ها اینه که ممکنه یک درخواست بیشتر از یک بار ارسال بشه. مثلا کاربر روی دکمه پرداخت دوبار کلیک کنه، یا پرداخت با موفقیت انجام بشه ولی پاسخ به خاطر مشکل شبکه به کلاینت نرسه و کاربر دوباره درخواست پرداخت بفرسته.

اینجا Idempotency کمک می‌کنه یک درخواست حتی اگر چند بار ارسال بشه، فقط یک بار پردازش بشه. برای این کار معمولا یک Idempotency Key همراه درخواست ارسال می‌کنیم. سرور این کلید رو ذخیره می‌کنه و اگر دوباره همون کلید رو ببینه، به جای پردازش مجدد نتیجه درخواست قبلی رو برمی‌گردونه.

یکی از راه‌های ساده برای پیاده‌سازی این موضوع استفاده از Unique Constraint دیتابیسه. درخواست اول با موفقیت رکورد مربوط به کلید رو ثبت می‌کنه. ولی اگر درخواست دوم با همون کلید برسه، ثبت رکورد به خاطر تکراری بودن کلید fail میشه و سرور می‌فهمه که این درخواست قبلا پردازش شده.

#system_design_interview_volume_2

@techstuff100
  • ❤ 7
  • 👏 2
More from @techstuff100
  1. Oct 9, 2026فاصله Levenshtein حداقل تعداد عملیات‌های ممکن (insertion، deletion و substitution) برای تب…
  2. Oct 6, 2026خروجی کد بالا (1) چیه؟ شاید اینطور فکر کنیم که وقتی به return "try" می‌رسیم، اجرای تابع مت…
  3. Oct 2, 2026قانون پارکینسون میگه کار اونقدر کش پیدا می‌کنه تا زمانی که برای تکمیلش داریم رو پر کنه. پر…
  4. Oct 1, 2026با بزرگ شدن LF باید slotهای بیشتری به hash tableمون اضافه کنیم که بهش میگن resizing. منطقی…
  5. Oct 1, 2026پرفورمنس hash table پرفورمنس hash tableها بطور متوسط (average case) پیچیدگی زمانی O(1) دار…
  6. Sep 29, 2026چطور ریموت کار کنیم ریموت کار کردن فقط این نیست که لپ‌تاپمون رو برداریم و از خونه کار کنیم…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →