Theme
Primary Color

فكرة Idempotency عند تكرار نفس الطلب

بعض العمليات لازم تدي نفس الأثر حتى لو العميل بعتها أكتر من مرة بنفس المعرف

شغل المثال بإستخدام Node.js لتوضيح الفكرة ويمكن تطبيق نفس المبدأ في لغات تانية

المثال العملي

const processed = new Set();
let points = 0;
function award(requestId, amount) {
  if (processed.has(requestId)) return;
  processed.add(requestId);
  points += amount;
}
award('request-1', 10);
award('request-1', 10);
console.log(points);

النتيجة

10

المعرف منع تكرار الإضافة داخل نفس تشغيل البرنامج لكن الذاكرة هنا بتضيع عند إغلاقه

جرب بنفسك

جرب معرف جديد بنفس المبلغ ولاحظ أن العملية تعتبر جديدة

ملحوظة

في التطبيقات الفعلية نحتاج تخزين دائم وقيد فريد ومعاملة ذرية حتى مع وصول طلبات متزامنة

programming شرح