تصميم تحليلات مستدامة في الوقت الفعلي
أنت بحاجة إلى لوحات معلومات (dashboards) تحتوي على بيانات حديثة. وتحتاج إلى بقائها دقيقة مع نمو أعمالك. تقنية Event sourcing هي الحل لذلك.
التدفق:
- المنتجون (Producers): ترسل الخدمات أحداث النطاق (domain events).
- ناقل الأحداث (Event Bus): يقوم Kafka أو Kinesis بتخزين الأحداث في سجل (log).
- المعالجون (Processors): يقومون بقراءة السجل وتحديث نماذج القراءة (read models).
- نماذج القراءة (Read Models): يقوم Postgres أو Redis بتخزين المقاييس النهائية.
- واجهة برمجة تطبيقات الاستعلام (Query API): تسحب لوحة المعلومات الخاصة بك البيانات من هنا.
القواعد الأساسية لتصميمك:
- اجعل الأحداث غير قابلة للتغيير (immutable). لا تقم بتحديث الحدث أبدًا.
- استخدم مفاتيح التكرار (idempotency keys). هذا يمنع تكرار البيانات.
- قم بإصدار نسخ لمخططات البيانات (schemas). هذا يمنع حدوث أعطال.
- استخدم الإسقاطات الحتمية (deterministic projections). هذا يحافظ على اتساق البيانات.
كيفية البناء:
- حدد أحداثك الأساسية.
- اختر أدوات التخزين الخاصة بك.
- ابنِ الإسقاطات الأولية للمقاييس.
- قم بتنفيذ عملية إزالة التكرار (deduplication).
- أنشئ سجلاً للمخططات (schema registry).
- راقب تأخر الأحداث (event lag).
يتيح لك هذا الإعداد التوسع وتدقيق بياناتك. كما تحتفظ بسجل كامل لكل تغيير.