فلیپکارت در ارائه تبلیغات اسپانسری در صفحات مختلف و نتایج جستجو، با چالشهای مربوط به دقت بودجه تبلیغکنندگان مواجه بود. تأخیر در کسر بودجه تبلیغاتی میتواند منجر به هزینههای اضافی برای تبلیغکنندگان یا از دست دادن درآمد برای فلیپکارت شود. برای حل این مشکل، فلیپکارت به سمت یک معماری حالتدار و سازگار با رویدادهای نهایی (eventually consistent) حرکت کرده است که قادر به پردازش میلیونها رویداد در ثانیه است.
این معماری جدید با استفاده از معناشناسی زمان رویداد (event-time semantics)، حذفسازی (deduplication) و علامتگذاری آب (watermarking) طراحی شده است تا دقت بودجه را در میان حجم عظیمی از دادهها تضمین کند. در این سیستم، رویدادهای تعامل کاربران با محتوای تبلیغاتی به دو دسته اصلی تقسیم میشوند: نمایش (Impressions) که زمانی رخ میدهد که یک تبلیغ به طور موثر در نمای کاربر رندر میشود و تعاملات (Engagements) که شامل کلیک یا افزودن به سبد خرید است.
یکی از چالشهای اصلی، حفظ تعادل بین تأخیر و در دسترس بودن سیستم است، در حالی که دقت مالی یک الزام غیرقابل مذاکره است. خطر سوء استفاده از بودجه (Over-burn Risk) زمانی رخ میدهد که تأخیر در جمعآوری هزینهها منجر به نمایش تبلیغات پس از اتمام بودجه شود. در مقابل، خطر کمبود بودجه (Under-burn Risk) زمانی اتفاق میافتد که سیستم به طور ناگهانی متوقف شود و از ارائه تبلیغات به دلیل بررسیهای نادرست یا خرابی سیستم جلوگیری شود.
برای اطمینان از صحت کامل، سیستم باید سیگنالهای تکراری ناشی از تلاشهای مجدد شبکه یا نوسانات مشتری را فیلتر کند. این امر یک "هزینه" پردازشی حالتدار (stateful processing tax) را تحمیل میکند که دستیابی به اهداف تأخیر در مقیاس بزرگ را پیچیده میکند. به همین دلیل، فلیپکارت از معناشناسی حداقل یک بار (at-least-once) استفاده کرده و در عوض، در دسترس بودن بالا را در اولویت قرار داده و سازگاری نهایی را میپذیرد.
مشاهده مطلب اصلی