فكرة 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المعرف منع تكرار الإضافة داخل نفس تشغيل البرنامج لكن الذاكرة هنا بتضيع عند إغلاقه
جرب بنفسك
جرب معرف جديد بنفس المبلغ ولاحظ أن العملية تعتبر جديدة
ملحوظة
في التطبيقات الفعلية نحتاج تخزين دائم وقيد فريد ومعاملة ذرية حتى مع وصول طلبات متزامنة