نمط موصل التكاملIntegration adapter pattern
واجهة موحدة لكل جهة خارجية بتنفيذين (يدوي ورسمي)، ومهلة وإعادة أسية وحدود وقاطع دائرة ومفتاح عدم تكرار وسجل مقنع.
الميزات التي تستخدمها: B43 طبقة التكامل المركزية، B45 ربط الملفات بناجز، B23 الفوترة على المراحل والفوترة الإلكترونية، B30 السكرتير الذكي (وكيل خدمة العملاء)
1الغرض والمصطلحات القانونية المرتبطة
عزل الجهات الخارجية عن منطق النظام.
2المدخلات وأنواعها ومصادرها
العملية، البيانات، مفتاح عدم التكرار.
3المخرجات والحالات
نتيجة مصنفة: نجاح / فشل مؤقت / فشل دائم / رفض / تجاوز حد.
4خطوات المعالجة بالتسلسل
- التحقق من التفعيل والمنتج المعتمد.
- قاطع الدائرة مفتوح؟ ← رفض فوري.
- الطلب بمهلة.
- تصنيف الخطأ.
- المؤقت ← إعادة أسية مع عشوائية.
- تسجيل مقنع.
5الشروط والفروع والاستثناءات
N فشل متتالٍ ← فتح القاطع وتنبيه.
6Pseudocode كامل
Pseudocode
class Adapter:
def call(op, payload, idem_key):
require settings.enabled and op.product in settings.approved_products
if breaker.open: raise Paused
for attempt in range(max_attempts):
try: res = http(op, payload, timeout=T, headers={"Idempotency-Key": idem_key} if supported)
except Timeout: res = TEMP
log_masked(op, res, attempt)
if res.ok: breaker.success(); return res
if not res.retryable: breaker.failure(); return res
sleep(base * 2**attempt + jitter())
breaker.failure(); return res7مثال اصطناعي خطوة بخطوة
ناجز يرد 503 ثلاث مرات ← إعادة 2ث، 4ث، 8ث ثم فشل؛ خمسة طلبات فاشلة متتالية ← إيقاف وتنبيه.
8حالات الفشل والتعامل معها
انظر الخطوات.
9منع التكرار والتزامن
قفل على القاطع في Redis.
10الصلاحيات والتدقيق والأمن
المفاتيح من الخزنة؛ لا أجسام استجابة في السجل.
11اختبارات الوحدات والتكامل والقبول
| المعرّف | النوع | السيناريو | النتيجة المتوقعة |
|---|---|---|---|
ALG-IA-01 | تكامل | جهة وهمية متوقفة | إيقاف بعد N |
12ما هو قاعدة تقنية وما هو قرار قانوني
| قاعدة تقنية (ينفذها المطور) | قرار قانوني (يعتمده مختص) |
|---|---|
| النمط | ما تسمح به كل جهة |