جميع المشاريع
e commerce

Allbirds — إصلاح عملية الدفع التي تتباطأ تحت ضغط الزيارات

تجارة إلكترونية · تحسين SQL · Docker · وظائف خلفية

العميل
Allbirds
الصناعة
Sustainable Footwear
الموقع
International
السنة
2023
عرض الموقع الحي
وسائط الإعلام

انظر العمل في السياق.

تحرك من خلال الشاشات المنشورة والمنافذ. الصور مفتوحة بحجم كامل، والفيديو يلعب بضوابطهم الخاصة.

Desktop interface

<1.2s

Checkout response time (peak)

vs 4–6s before

eliminated

Environment bugs

post-Docker rollout

−55%

Checkout abandonment (traffic spikes)

month post-fix

6

Queries optimised

responsible for 80% latency

موجز المشروع
العميل
Allbirds
الصناعة
Sustainable Footwear
الموقع
International
العمل
Web Development

تخدم Allbirds ملايين العملاء حول العالم. كانت عملية الدفع غير منتظمة تحت ارتفاع حركة المرور — روابط SQL البطيئة كانت السبب. شخّصنا المشكلة وأصلحناها وحوّلنا المنظومة بالكامل إلى Docker حتى توقف الجميع عن قول "يعمل على جهازي".

01 / استعراض المشاريع

الحالة

بنت Allbirds واحدة من أكثر علامات الأحذية المستدامة شهرة في العالم. كان على الواجهة الخلفية لتجارتها الإلكترونية أن تواكب هذه السمعة — سريعة وموثوقة ومتسقة بغض النظر عن حجم الزيارات أو البيئة. المشكلة التي استُدعينا لحلها كانت تفاوت زمن استجابة الدفع. في الأحوال الاعتيادية، كان الدفع جيداً. لكن عند ارتفاع الزيارات — إطلاق منتج أو ظهور إعلامي — كان يصبح غير قابل للتنبؤ. وقت استجابة الدفع عند P95 كان يقفز إلى 4-6 ثوانٍ. العملاء يغادرون والإيرادات تضيع. استخرجنا خطط تنفيذ الاستعلامات على مسار الدفع ووجدنا المشكلة: روابط متعددة الجداول عبر جداول المنتجات والمخزون والمتغيرات والأسعار دون فهارس مركّبة مناسبة. تحت التحميل المتزامن، تصبح هذه الروابط مسحاً كاملاً للجدول.

02 / التحدي

ما كان يجب أن يتغير

قفز زمن استجابة الدفع إلى 4-6 ثوانٍ تحت أحمال زيارات كان ينبغي أن تكون مُدارَة تماماً. أظهرت خرائط الحرارة وتسجيلات الجلسات تخلياً واضحاً عند خطوة الدفع خلال نوافذ الزيارات العالية. كافح الفريق الهندسي أيضاً مع تناقضات مستمرة بين بيئة الاختبار والإنتاج.

03 / حلّنا

لقد تغيرت

مراجعة SQL لمسار استعلام الدفع بالكامل: حددنا 6 استعلامات مسؤولة عن 80% من التأخير. أضفنا فهارس مركّبة على الأعمدة عالية الانتقائية، وأعدنا كتابة 3 استعلامات بـ eager loading مناسب للقضاء على أنماط N+1، ونقلنا إرسال البريد الإلكتروني إلى قائمة انتظار الوظائف الخلفية. حوّلنا المنظومة الكاملة إلى Docker. استقر وقت استجابة الدفع تحت 1.2 ثانية.

04 / نتائج النواتج

ما حصل عليه العميل

  • 01 الدفع باستمرار تحت 1.2 ثانية حتى في الذروة
  • 02 فهارس مركّبة + eager loading على جميع المسارات الساخنة
  • 03 منظومة Docker — لا مفاجآت بين الاختبار والإنتاج
  • 04 وظائف خلفية تتولى البريد الإلكتروني وجميع العمليات غير المتزامنة
أحضر القيد التالي

هل لديك مشروع يحتاج إلى طريقة أوضح للأمام؟

مناقشة المشروع

1 / 2