ટકાઉ રિયલ-ટાઇમ એનાલિટિક્સની ડિઝાઇન

તમારે તાજા ડેટા સાથેના ડેશબોર્ડ્સની જરૂર છે. જેમ જેમ તમે વિકાસ કરો તેમ તેમ તે સચોટ રહે તે પણ જરૂરી છે. ઇવેન્ટ સોર્સિંગ (Event sourcing) આ સમસ્યાનું સમાધાન કરે છે.

પ્રક્રિયા (The flow):

  • પ્રોડ્યુસર્સ (Producers): સર્વિસીસ ડોમેન ઇવેન્ટ્સ મોકલે છે.
  • ઇવેન્ટ બસ (Event Bus): Kafka અથવા Kinesis ઇવેન્ટ્સને લોગમાં સ્ટોર કરે છે.
  • પ્રોસેસર્સ (Processors): તેઓ લોગ વાંચે છે અને રીડ મોડલ્સ (read models) અપડેટ કરે છે.
  • રીડ મોડલ્સ (Read Models): Postgres અથવા Redis અંતિમ મેટ્રિક્સ સ્ટોર કરે છે.
  • ક્વેરી API (Query API): તમારું ડેશબોર્ડ અહીંથી ડેટા મેળવે છે.

તમારી ડિઝાઇન માટેના મુખ્ય નિયમો:

  • ઇવેન્ટ્સને અપરિવર્તનીય (immutable) બનાવો. ક્યારેય ઇવેન્ટ અપડેટ ન કરો.
  • આઈડેમપોટન્સી કી (idempotency keys) નો ઉપયોગ કરો. આ ડુપ્લીકેટ ડેટાને અટકાવે છે.
  • તમારા સ્કીમાનું વર્ઝનિંગ કરો. આ સિસ્ટમમાં ખામીઓ આવતા અટકાવે છે.
  • ડિટરમિનિસ્ટિક પ્રોજેક્શન (deterministic projections) નો ઉપયોગ કરો. આ ડેટાને સુસંગત રાખે છે.

તે કેવી રીતે બનાવવું:

  • તમારી મુખ્ય ઇવેન્ટ્સ ઓળખો.
  • તમારા સ્ટોરેજ ટૂલ્સ પસંદ કરો.
  • મેટ્રિક્સ માટે પ્રારંભિક પ્રોજેક્શન બનાવો.
  • ડુપ્લીકેશન દૂર કરવાની (deduplication) પ્રક્રિયા લાગુ કરો.
  • સ્કીમા રજિસ્ટ્રી બનાવો.
  • તમારા ઇવેન્ટ લેગ (event lag) પર દેખરેખ રાખો.

આ સેટઅપ તમને તમારા ડેટાને સ્કેલ કરવા અને ઓડિટ કરવામાં મદદ કરે છે. તમે દરેક ફેરફારનો સંપૂર્ણ ઇતિહાસ જાળવી શકો છો.

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