تصميم تحليلات مستدامة في الوقت الفعلي

أنت بحاجة إلى لوحات معلومات (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).

يتيح لك هذا الإعداد التوسع وتدقيق بياناتك. كما تحتفظ بسجل كامل لكل تغيير.

المصدر: https://dev.to/therizwansaleem/designing-a-durable-event-sourced-analytics-platform-for-real-time-dashboards-58fd