GH GambleHub

نواة مدفوعة بالحدث

ما هي نواة الحدث

النواة التي تحركها الأحداث (EDC) هي «العمود الفقري» للهندسة المعمارية، حيث يتم التقاط حقائق الأعمال وتوزيعها كأحداث غير قابلة للتغيير، وبقية الوظائف (القراءة والتكامل والتحليلات والمخابئ والإشعارات) مبنية على قمة تدفق هذه الأحداث. تحدد النواة عقد الحدث وقواعد التسليم وثوابت الطلب/الخصوصية، مما يوفر اتصالًا ضعيفًا وقابلية للتطوير.

الفكرة الرئيسية: تكتب أولاً الحقيقة (الأساسية)، ثم تثريها بشكل مستقل وتضعها في النماذج المطلوبة. هذا يقلل من الاتصال ويزيد من المرونة في مواجهة الإخفاقات الجزئية.

أهداف وممتلكات EDC

حقيقة الحقائق: كل حدث هو سجل ثابت لـ «ما حدث».
ضعف الاتصال: المنتجون لا يعرفون المستهلكين ؛ توسيع النظام - بإضافة مشتركين.
التوسع: النمو الأفقي حسب الطرف/الموضوع، المستهلكين المستقلين.
إمكانية الملاحظة ومراجعة الحسابات: محددات الهوية من طرف إلى طرف، وقابلية الاستنساخ، والاحتفاظ بها وإعادة تشغيلها.
التطور المُدار: إصدارات المخطط، التوافق، الاستنكار.

المكونات المعمارية

1. وسيط حافلة/حدث: كافكا/ناتس/بولسار/SNS + SQS - القنوات والحفلات والاحتفاظ.
2. Schema Registry: JSON Schema/Avro/Protobuf for compatibility and evolution.
3. Outbox/CDC contour: تثبيت الحقائق الذرية + النشر بدون «كتابة مزدوجة».
4. التوقعات/يقرأ (CQRS): الآراء المجسدة للاستفسارات السريعة.
5. Sagas/orchestration: تنسيق العمليات الطويلة الأمد من خلال الأحداث/الأفرقة.
6. الإثراء: المواضيع الفردية «.iriched »/« .ired» دون التأثير على المسار الحرج.
7. إمكانية الرصد: التعقب، وقطع الأشجار، والمقاييس حسب الأحداث والتأخيرات.

نموذج الحدث

أنواع الأحداث

Domain Events: Business Facts ('payment. مأذون به '،' kyc. المعتمدة ').
أحداث التكامل: تركز على النظم الخارجية (مستقرة ومتغيرة ببطء).
Change Data Capture (CDC): تغييرات تقنية في السجل (استخدام للهجرات/التكامل).
مراجعة الحسابات/القياس عن بُعد: إجراءات الجهات الفاعلة، الأمن، جيش تحرير السودان.

الصفات المطلوبة (أساسي)

json
{
"event_id": "uuid",
"event_type": "payment. authorized. v1",
"occurred_at": "2025-10-31T11:34:52Z",
"producer": "payments-service",
"subject": { "type": "payment", "id": "pay_123" },
"payload": { "amount": 1000, "currency": "EUR", "method": "card" },
"schema_version": 1,
"trace_id": "abc123",
"partition_key": "pay_123"
}

التوصيات: «event _ id» فريد عالميًا، «partition _ key» يحدد ترتيب الكيان، «trace _ id» يوفر الارتباط.

دلالات التسليم والغباء

مرة واحدة على الأقل (الافتراضي للعديد من الوسطاء): يُطلب من المستهلكين أن يكونوا أفرادًا.
على الأكثر مرة واحدة: مقبول فقط للقياس عن بعد الثانوي.
مرة واحدة بالضبط: يتم تحقيقه على مستوى التدفق والتخزين من خلال المعاملات/المفاتيح الخفية/علب الري (أكثر تكلفة، تحتاج إلى سبب وجيه).

نمط فراغ المستهلك

جدول التسريح حسب 'event _ id '/' (event_id، consumer_id)' مع الاحتفاظ بموضوع TTL ≥.
زائد بدلا من إدراج ؛ إصدار الإسقاطات بواسطة "التسلسل "/" حدث _ at'.
المعاملات داخل المعاملة: علامة «مشاهدة» + تغيير الدولة.

الطلب والتقسيم

نظام مضمون داخل الحزب.
حدد «التقسيم _ المفتاح» بحيث تقع جميع أحداث نفس الكيان المجمع في نفس الدفعة («المستخدم _ معرف»، «الدفع _ معرف»).
تجنب «المفاتيح الساخنة»: التجزئة بالملح/المفاتيح الفرعية إذا كنت بحاجة إلى توزيع الحمل.

المخططات والتطور

المضافة أولاً: مجالات اختيارية جديدة، حظر تغيير الأنواع/الدلالات بدون نسخة رئيسية.
التوافق: BACKWARD/FORWARD في سجل المخطط ؛ يحجب CI التغييرات غير المتوافقة.
التسمية: 'المجال. العمل. v {major} '(الدفع. المأذون به. v1 ').
الهجرات: نشر الأزواج «v1» و «v2» بالتوازي، وتوفير الكتابة المزدوجة من خلال صندوق الخروج، والتصوير «v1» بعد الانتقال.

Outbox и CDC

Outbox (موصى به لخدمات المعاملات)

1. في إحدى معاملات قاعدة البيانات: حفظ سجل النطاق والحدث إلى صندوق الخروج.
2. يقرأ ناشر الخلفية صندوق الخروج، وينشر للوسيط، علامات «مرسلة».
3. الضمانات: لا «فقدان» للحقيقة في السقوط، ولا عدم التزامن.

مركز السيطرة على الأمراض (التقاط بيانات التغيير)

مناسب للنظم/عمليات النقل القائمة ؛ المصدر - سجل نسخ DB.
يتطلب الترشيح/النقل إلى أحداث المجال (لا تترجم الجداول الخام في الخارج).

CQRS والتوقعات

تتغير حالة الأوامر (غالبًا بشكل متزامن)، وتشكل الأحداث إسقاطات (بشكل غير متزامن).
تم تصميم الإسقاطات للاستفسارات (البحث والقوائم والتقارير)، والتي تم تحديثها من قبل المشتركين.
عدم التزامن المؤقت هو القاعدة: أظهر UX مستقر («سيتم تحديث البيانات في بضع ثوان»).

Sagas: تنسيق العملية

التنسيق: يرسل أحد المنسقين الأوامر وينتظر الأحداث.
تصميم الرقصات: يتفاعل المشاركون مع أحداث بعضهم البعض (أبسط، لكنهم يتطلبون الانضباط في العقود).
القواعد: تعويضات واضحة ومهلة زمنية، خطوات قابلة للتكرار، متعاملون أفرادون.

قابلية الملاحظة

التتبع/الامتداد: تتبع 'المعرف '/' span _ id' من خلال الرؤوس عند توليد الأحداث.
المقاييس: تأخر المستهلك، معدل النشر/الاستهلاك، معدل الحروف الميتة، حصة التفريغ.
DLQ/ساحة انتظار السيارات: رسائل فاشلة - إلى موضوع منفصل مع تنبيه ؛ إعادة المعالجة.

الأمن والامتثال

تصنيف البيانات: يحتوي النواة فقط على الحد الأدنى المطلوب من البيانات المالية PII (نموذج الهرم العكسي)، التفاصيل - في الإثراء.
توقيع/تجزئة الخصائص الحرجة، ومراقبة النزاهة.
تشفير حقوق التقسيم أثناء الطيران وأثناء الاستراحة حسب الموضوع/المستهلك (IAM/ACL).
سياسات الإبقاء والحقوق الواجب نسيانها: محددة بوضوح لكل موضوع.

الأداء والاستقرار

الضغط الخلفي: المستهلكون لديهم منافسة محدودة، والوسيط لديه حصص/حدود.
الدفعة وسجلات مجموعة الضغط لتقليل النفقات العامة.
Retrai مع jitter و DLQ بدلاً من المحاولات اللامتناهية.
مقاومة إعادة التوازن: يعوض المتجر المعاملات/الخارجية، ويسرع البداية الباردة باللقطات.

نماذج الأحداث النموذجية

الدفع الأساسي

الدفع. بدأت. v1 '→' الدفع. المأذون به. v1 '→' الدفع. تم القبض عليه. v1 '→' الدفع. استقر. v1 '

الرفض: الدفع. رفض. v1 '،' الدفع. المستردة. v1 '

التقسيم: "الدفع _ id'

SLA: core lag ≤ 2c p95; إن إفراط المستهلك إلزامي.

CCM/التحقق

kyc. بدأت. v1 '→' kyc. . تم الاستلام: v1 '→' kyc. تمت الموافقة عليه. v1 '/' kyc. رفض. v1 '

PII - الحد الأدنى ؛ تفاصيل المستند - في 'kyc. إثراء. v1 'مع تقييد الوصول.

مراجعة الحسابات/الأمن

'استحسان. المسجلة. v1 'مع سمات' فاعل '،' موضوع '،' فعل '،' حدث _ at'، 'تتبع _ id'.

الاحتفاظ/الحفظ المستمر ؛ تعزيز النزاهة

Antipatterns

حدث الدهون: حمولات زائدة بلا داع، تسريبات PII.
RPC المخفي من خلال الأحداث: انتظار ردود متزامنة «هنا والآن».
مراكز السيطرة على الأمراض الخام إلى الخارج: الاتصال الوثيق بمخطط DB.
لا يوجد فراغ في المستهلكين: يؤدي الزوجي إلى آثار جانبية مزدوجة.
موضوع واحد مشترك «لكل شيء»: تضارب المصالح، النظام الإشكالي، التطور المعقد.

تنفيذ التبادل الالكتروني للبيانات خطوة خطوة

1. رسم خرائط المجال: تسليط الضوء على التجمعات الرئيسية ودورات الحياة.
2. فهرس الأحداث: الأسماء والمعاني والثوابت والحقول المطلوبة.
3. المخططات والتسجيل - حدد الشكل، وتمكين قواعد التوافق.
4. Outbox/CDC: لكل منتج، حدد آلية لنشر الحقائق.
5. التقسيم: حدد المفاتيح وقيم المفاتيح الساخنة/إعادة التخصيص.
6. الخصوصية: نمط التفريغ + معاملة المستهلك.
7. تحديد النماذج المتجسدة وتحديث اتفاقات البيئة المستدامة.
8. إمكانية الملاحظة: التتبع، التأخير، DLQ، التنبيهات.
9. Security/PII: data classification, encryption, ACL.
10. دليل التطور: سياسة النسخة، الاستنكار، الكتابة المزدوجة للهجرات.

قائمة الإنتاج المرجعية

  • يحتوي كل حدث على «حدث _ معرف» و «تتبع _ معرف» و «حدث _ في» و «تقسيم _ مفتاح».
  • مخططات في السجل، يمكن التحقق من التوافق.
  • تم تنفيذ هوية المستهلك واختبارها.
  • تم تكوين DLQ/ساحة انتظار السيارات والتنبيهات لنشر/استهلاك الأخطاء.
  • يعاد إنشاء الإسقاطات من السجل (إعادة التشغيل) بوقت مقبول.
  • الوصول المحدود إلى PII ؛ الحمولة الدنيا في النواة.
  • يتم قياس اتفاقيات SLAs حسب التأخير/التسليم ومرئية على لوحات القيادة.
  • هناك خطة لترحيل إصدارات الأحداث واستنكار النوافذ.

الأسئلة الشائعة

كيف يختلف EDC عن «مجرد حافلة» ؟

الجوهر ليس فقط الوسيط، ولكن أيضًا عقد الحدث، وقواعد الطلب/الخصوصية، وعمليات التطور، وقابلية الملاحظة.

هل يمكننا فقط البناء على مركز السيطرة على الأمراض ؟

CDC مناسب للتكامل/الهجرات، لكن أحداث المجال تعبر عن معنى أكثر وضوحًا وتتغير قاعدة بيانات التجربة بشكل أكثر ثباتًا.

ماذا عن الاتساق ؟

نحن نقبل الاتساق النهائي وتصميم UX/العمليات الخاصة به (مؤشرات التحديث وإعادة الدفع والتعويض).

متى بالضبط مطلوب مرة واحدة ؟

نادر: عندما تكون المضاعفة غير مقبولة تمامًا ومن المستحيل تعويضها. في كثير من الأحيان، يكفي + الخصوصية مرة واحدة على الأقل.

المجموع

تحول نواة Event-Driven تدفق الحقائق التجارية إلى أساس موثوق للنظام. تؤدي عقود الأحداث الواضحة وانضباط التسليم وقابلية الملاحظة إلى قابلية التوسع والمرونة ومعدل التطور - بدون الروابط المتزامنة الهشة و «عاصفة» الانحدارات تحت التغيير.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.