टिकाऊ रिअल-टाइम ॲनालिटिक्स डिझाइन करणे

तुम्हाला ताज्या डेटासह डॅशबोर्ड्सची आवश्यकता आहे. जसजशी तुमची व्याप्ती वाढेल, तसतसे ते अचूक राहणे आवश्यक आहे. 'इव्हेंट सोर्सिंग' (Event sourcing) ही समस्या सोडवते.

प्रवाह (The flow):

  • Producers: सर्व्हिसेस डोमेन इव्हेंट्स पाठवतात.
  • Event Bus: Kafka किंवा Kinesis इव्हेंट्स लॉगमध्ये साठवते.
  • Processors: ते लॉग वाचतात आणि रीड मॉडेल्स (read models) अपडेट करतात.
  • Read Models: Postgres किंवा Redis अंतिम मेट्रिक्स साठवते.
  • Query API: तुमचा डॅशबोर्ड येथून डेटा घेतो.

तुमच्या डिझाइनसाठी महत्त्वाचे नियम:

  • इव्हेंट्स इम्युटेबल (immutable) ठेवा. कोणताही इव्हेंट कधीही अपडेट करू नका.
  • आयडेम्पोटन्सी कीज (idempotency keys) वापरा. यामुळे डुप्लिकेट डेटा रोखला जातो.
  • तुमच्या स्कीमांचे व्हर्जनिंग (versioning) करा. यामुळे सिस्टीममध्ये बिघाड टाळता येतो.
  • डिटर्मिनिस्टिक प्रोजेक्शन्स (deterministic projections) वापरा. यामुळे डेटा सुसंगत राहतो.

हे कसे तयार करावे:

  • तुमचे मुख्य (core) इव्हेंट्स ओळखा.
  • तुमची स्टोरेज टूल्स निवडा.
  • मेट्रिक्ससाठी सुरुवातीचे प्रोजेक्शन्स तयार करा.
  • ड्युप्लिकेशन टाळण्यासाठी (deduplication) उपाय लागू करा.
  • स्कीमा रजिस्ट्री (schema registry) तयार करा.
  • तुमच्या इव्हेंट लॅगवर (event lag) लक्ष ठेवा.

ही मांडणी तुम्हाला तुमचा डेटा स्केल करण्यास आणि ऑडिट करण्यास मदत करते. तुम्ही प्रत्येक बदलाचा पूर्ण इतिहास जतन करू शकता.

स्त्रोत: https://dev.to/therizwansaleem/designing-a-durable-event-sourced-analytics-platform-for-real-time-dashboards-58fd