टिकाऊ रियल-टाइम एनालिटिक्स का डिज़ाइन

आपको ताज़ा डेटा वाले डैशबोर्ड की आवश्यकता है। जैसे-जैसे आपका विस्तार होता है, आपको उन्हें सटीक बनाए रखने की आवश्यकता होती है। Event sourcing इसे हल करता है।

फ्लो (The flow):

  • Producers: सर्विसेज डोमेन इवेंट्स भेजती हैं।
  • Event Bus: Kafka या Kinesis इवेंट्स को एक लॉग में स्टोर करते हैं।
  • Processors: वे लॉग को पढ़ते हैं और read models को अपडेट करते हैं।
  • Read Models: Postgres या Redis अंतिम मेट्रिक्स को स्टोर करते हैं।
  • Query API: आपका डैशबोर्ड यहाँ से डेटा प्राप्त करता है।

आपके डिज़ाइन के लिए मुख्य नियम:

  • इवेंट्स को immutable बनाएं। किसी इवेंट को कभी अपडेट न करें।
  • Idempotency keys का उपयोग करें। यह डुप्लिकेट डेटा को रोकता है।
  • अपने स्कीमा का version रखें। यह सिस्टम को टूटने से बचाता है।
  • Deterministic projections का उपयोग करें। यह डेटा को सुसंगत (consistent) रखता है।

इसे कैसे बनाएं:

  • अपने मुख्य इवेंट्स की पहचान करें।
  • अपने स्टोरेज टूल्स चुनें।
  • मेट्रिक्स के लिए शुरुआती projections बनाएं।
  • Deduplication लागू करें।
  • एक schema registry बनाएं।
  • अपने event lag की निगरानी करें।

यह सेटअप आपको अपने डेटा को स्केल करने और ऑडिट करने की सुविधा देता है। आप हर बदलाव का पूरा इतिहास सुरक्षित रखते हैं।

Source: https://dev.to/therizwansaleem/designing-a-durable-event-sourced-analytics-platform-for-real-time-dashboards-58fd