IOSOR دانش

ایدمپوتنسی API ارسال: تکرار، تلاش مجدد و پول

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

تایم‌اوت رخ می‌دهد. بالانس‌کننده‌ها تلاش مجدد می‌کنند. کلاینت موبایل دوبار ضربه می‌زند. بدون ایدمپوتنسی محصول «یک‌بار بفرست» به بدهی پیش‌پرداخت دوبل و UX OTP تکراری تبدیل می‌شود. این راهنما برای engineering و محصول فنی است که API پیام‌رسانی پیش‌پرداخت وایت‌لیبل را یکپارچه می‌کنند — هر تکرار در کیف پول دیده می‌شود.

IOSOR انتظار یکپارچه‌سازی پول‌آگاه دارد: فراخوانی احرازشده، بدهی‌های قابل تطبیق، و خطاهای مشتری که بار برند خارجی را نمی‌ریزند. نزدیک ۱٬۰۰۰ دلار آمریکا+ مصرف ماهانه پلتفرم، انضباط تکرار اختیاری نیست. هر ارسال را اول رویداد دفترکل، بعد فراخوانی شبکه بدانید تا مالی و on-call یک روایت داشته باشند.

چرا تکرار به مشکل پولی تبدیل می‌شود

حالت شکست کاربر می‌بیند کیف پول می‌بیند
تایم‌اوت کلاینت + تلاش کور دو OTP / دو هشدار دو بدهی
هندلر وبهوک غیرایدمپوتنت عوارض جانبی دوبل سردرگمی در موفقیت
ارسال مجدد کاربر روی تلاش خودکار کاربران ناراضی واحدهای انباشته
بدون همبستگی تیکت‌های «شکست خورد» سطرهای دفترکل بی‌تطبیق

دمو می‌بخشد. مالی تولید نمی‌بخشد. در شدت پیش‌پرداخت، آخر هفته تلاش کور پروژه تطبیق می‌شود نه پاورقی لاگ. مسیر خوش و مسیر تایم‌اوت را با یک قاعده بدهی طراحی کنید.

کلیدهای ایدمپوتنسی که تلاش مجدد را تاب می‌آورند

مسیر ارسال جدی کلید تولیدشده توسط کلاینت (یا معادل) را می‌پذیرد که به ازای نیت کسب‌وکار یکتا باشد. در replay داخل TTL مشخص همان نتیجه پذیرفته را برگرداند. بی‌صدا بدهی دوم برای همان نیت نسازد. کنار شناسه پیام و مرجع پیش‌پرداخت ثبت شود. در تایم‌اوت، تلاش درگاه و redrive پشتیبانی کار کند. اگر تنها توصیه «تایم‌اوت را زیاد کنید» است، داستان ایدمپوتنسی ندارید. کلیدها باید بین رانتایم و ورکر پایدار باشند تا فرایند دوم برای همان کلیک کلید تازه نسازد.

بودجه تلاش مجدد در برابر ارسال مجدد کاربر

تلاش خودکار نیاز به بودجه دارد: سقف تلاش، backoff و کدام کلاس خطا قابل تلاش دوباره است. ارسال مجدد کاربر اقدام محصول دیگری است با سقف و هزینه پیش‌پرداخت خودش. مخلوط کردنشان شبکه ناپایدار را به رویداد کیف پول آخر هفته تبدیل می‌کند. هر دو را با توقف روی موجودی کم و دلایل رد روشن جفت کنید تا محصول و مالی یک حقیقت داشته باشند.

چک‌لیست خریدار / مهندسی

  1. معناشناسی کلید ایدمپوتنسی و TTL مستند شده.
  2. تست replay که یک بدهی برای یک نیت را ثابت کند.
  3. بودجه تلاش خودکار جدا از منطق ارسال مجدد کاربر.
  4. شناسه‌های همبستگی در درخواست، وضعیت پیام و دفترکل پیش‌پرداخت.
  5. محیط استیجینگ که کریدورهای واقعی را تمرین کند — چراغ سبزهای ساختگی لانچ نیستند.
  6. بهداشت کلید و حداقل دسترسی برای اعتبارنامه‌های ارسال.
  7. مدیریت کدهای 429 و 503 بدون از دست دادن کلید نیت اصلی.
  8. هشدارهای خودکار برای نرخ بالای رد کلیدهای تکراری.

پرچم‌های قرمز

  • «فقط تا 200 تلاش مجدد کن» بدون استفاده از کلیدهای ایدمپوتنسی.
  • هندلرهای وبهوک که ایدمپوتنت نیستند و عوارض جانبی را دوبار فعال می‌کنند.
  • کلیدهای مخفی کامل یا توکن‌های احراز در لاگ‌ها یا تیکت‌های پشتیبانی.
  • خطاهایی که بار برند بالادستی یا ردیابی‌های داخلی را به کاربر نهایی می‌چسبانند.
  • نبود استراتژی برای مدیریت موجودی کم در حین تلاش مجدد.

با IOSOR شروع کنید

در کنسول ارسال یک OTP یا هشدار با کلید ایدمپوتنسی ساختهٔ مشتری بزنید. مهلت مشتری را اجباری کنید و همان درخواست را داخل TTL کلید بازپخش کنید. دفتر prepaid را باز کنید: آن نیت باید یک بدهکار و یک پیام دیده‌شده نشان دهد. دو ردیف یعنی کلید از تلاش مجدد جان سالم به در نبرد — TTL و هندلر را پیش از Live ماندن دالان درست کنید.

جمع‌بندی IOSOR

بکنید: هر ارسال را اول رویداد دفتر بدانید. کلید برای نیت کسب‌وکار یکتاست، نه برای تلاش TCP. تلاش خودکار بودجه دارد؛ ضربهٔ ارسال دوبارهٔ کاربر کنش محصول دیگری با هزینهٔ prepaid خودش است.

نکنید: تا ۲۰۰ بدون کلید نکوبید و webhook غیرایدمپوتنت را نگذارید اثر دوم بسازد. دو OTP برای یک ضربه باگ پول است، نه قصهٔ شبکه.

آیا این راهنما مفید بود؟

راهنماهای مرتبط