TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #389 431
خب امروز می‌خوام یکی دیگه از سوالای مصاحبه‌ای که اگر به عنوان مصاحبه‌کننده باشم از بقیه می‌پرسم رو باهاتون مطرح کنم و نظر شما رو بپرسم.

سناریو: جلوگیری از فاجعه در درگاه پرداخت

فرض کنید یوزر روی دکمه «پرداخت نهایی» کلیک می‌کنه (پرداخت از کیف پول داخلی). به دلیل کندی اینترنت، Response سریع برنمی‌گرده؛ یوزر چندین بار پشت سر هم روی دکمه کلیک می‌کنه یا صفحه رو رفرش می‌کنه.

صورت مسئله:
۱. سمت Frontend، غیرفعال کردن دکمه (Disable Button) لایه اوله اما کافی نیست (چون با ابزارهایی مثل Postman یا رفرش صفحه قابل Bypass شدنه).
۲. سمت Backend، ما نباید تحت هیچ شرایطی اجازه بدیم بیش از یک‌بار از حساب کاربر کسر بشه، حتی اگر ۵ ریکوئست کاملاً یکسان در یک «میلی‌ثانیه» به سرور برسه (Race Condition).

سوال:
حرفه‌ای‌ترین و استانداردترین راهکار برای اینکه مطمئن بشیم یک عملیات حساس «دقیقاً و فقط یک‌بار» (Exactly-once) اعمال می‌شه چیه؟

نظراتتون رو بنویسید، شب درباره راهکار استانداردش (که توی شرکت‌های بزرگی مثل اسپاتیفای و اسنپ و ... استفاده می‌شه) گپ می‌زنیم.


"Do not hesitate to answer this question!"

@codehalics | کدهالیک
  • ❤ 3
More from @codehalics
  1. Oct 9, 2026حالا که فهمیدیم WAL چیه، بیاید ببینیم پس بک‌آپ (Backup) این وسط چکاره است؟ فرض کنید WAL هم…
  2. Oct 9, 2026دیتابیس‌ها چطور هم سرعت بالایی دارن و هم با کرش کردن سیستم، دیتا رو از دست نمیدن؟ کلید ماج…
  3. Oct 9, 2026ابزار REA یا همون Reverse Engineer Anything یه ابزار CLI و مبتنی بر پروتکل MCPئه که به ایج…
  4. Oct 8, 2026بوت‌استرپ ۶ نسخه آلفا ۱ منتشر شد و جالب‌ترین تغییرش اینه که رسماً داره می‌ره سمت سبک تیلوی…
  5. Oct 8, 2026کتابخونه Replicant یه ابزار کاربردی تو دات‌نته که با اضافه کردن یه لایه کش رو دیسک برای Ht…
  6. Oct 7, 2026این نکته رو هم اضافه کنم که این مورد داره ۲ اصل از اصول SOLID رو رعایت میکنه ! اول DIP (مع…
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 →