ഈടുനിൽക്കുന്ന റിയൽ-ടൈം അനലിറ്റിക്സ് രൂപകൽപ്പന ചെയ്യൽ

നിങ്ങൾക്ക് പുതിയ വിവരങ്ങൾ (fresh data) അടങ്ങിയ ഡാഷ്‌ബോർഡുകൾ ആവശ്യമാണ്. ബിസിനസ്സ് വളരുന്നതിനനുസരിച്ച് അവ കൃത്യത നിലനിർത്തുകയും വേണം. ഇവന്റ് സോഴ്സിംഗ് (Event sourcing) ഇതിന് പരിഹാരം നൽകുന്നു.

പ്രവർത്തന രീതി (The flow):

  • പ്രൊഡ്യൂസറുകൾ (Producers): സർവീസുകൾ ഡൊമെയ്ൻ ഇവന്റുകൾ (domain events) അയക്കുന്നു.
  • ഇവന്റ് ബസ് (Event Bus): Kafka അല്ലെങ്കിൽ Kinesis ഇവന്റുകളെ ഒരു ലോഗിൽ (log) സൂക്ഷിക്കുന്നു.
  • പ്രോസസറുകൾ (Processors): ഇവ ലോഗ് വായിക്കുകയും റീഡ് മോഡലുകൾ (read models) അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു.
  • റീഡ് മോഡലുകൾ (Read Models): Postgres അല്ലെങ്കിൽ Redis അന്തിമ മെട്രിക്സുകൾ (metrics) സൂക്ഷിക്കുന്നു.
  • ക്വറി API (Query API): നിങ്ങളുടെ ഡാഷ്‌ബോർഡ് ഇവിടെ നിന്നാണ് വിവരങ്ങൾ ശേഖരിക്കുന്നത്.

രൂപകൽപ്പനയ്ക്കുള്ള പ്രധാന നിയമങ്ങൾ:

  • ഇവന്റുകൾ മാറ്റമില്ലാത്തതാക്കുക (immutable). ഒരു ഇവന്റും ഒരിക്കലും അപ്ഡേറ്റ് ചെയ്യരുത്.
  • ഐഡെംപോട്ടൻസി കീകൾ (idempotency keys) ഉപയോഗിക്കുക. ഇത് ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ തടയുന്നു.
  • സ്കീമകൾ വേർഷൻ ചെയ്യുക (Version your schemas). ഇത് സിസ്റ്റം തകരാറിലാകുന്നത് തടയുന്നു.
  • ഡെറ്റർമിനിസ്റ്റിക് പ്രൊജക്ഷനുകൾ (deterministic projections) ഉപയോഗിക്കുക. ഇത് ഡാറ്റയുടെ സ്ഥിരത (consistency) നിലനിർത്തുന്നു.

ഇത് എങ്ങനെ നിർമ്മിക്കാം:

  • നിങ്ങളുടെ പ്രധാന ഇവന്റുകൾ (core events) തിരിച്ചറിയുക.
  • സ്റ്റോറേജ് ടൂളുകൾ തിരഞ്ഞെടുക്കുക.
  • മെട്രിക്സുകൾക്കായി പ്രാരംഭ പ്രൊജക്ഷനുകൾ നിർമ്മിക്കുക.
  • ഡ്യൂപ്ലിക്കേഷൻ ഒഴിവാക്കുന്ന രീതി (deduplication) നടപ്പിലാക്കുക.
  • ഒരു സ്കീമ രജിസ്ട്രി (schema registry) നിർമ്മിക്കുക.
  • ഇവന്റ് ലാഗ് (event lag) നിരീക്ഷിക്കുക.

ഈ സംവിധാനം നിങ്ങളുടെ ഡാറ്റ സ്കെയിൽ ചെയ്യാനും ഓഡിറ്റ് ചെയ്യാനും സഹായിക്കുന്നു. ഓരോ മാറ്റത്തിന്റെയും പൂർണ്ണമായ ചരിത്രം നിങ്ങൾക്ക് ഇതിലൂടെ ലഭിക്കുന്നു.

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