ટકાઉ રિયલ-ટાઇમ એનાલિટિક્સની ડિઝાઇન
તમારે તાજા ડેટા સાથેના ડેશબોર્ડ્સની જરૂર છે. જેમ જેમ તમે વિકાસ કરો તેમ તેમ તે સચોટ રહે તે પણ જરૂરી છે. ઇવેન્ટ સોર્સિંગ (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) પર દેખરેખ રાખો.
આ સેટઅપ તમને તમારા ડેટાને સ્કેલ કરવા અને ઓડિટ કરવામાં મદદ કરે છે. તમે દરેક ફેરફારનો સંપૂર્ણ ઇતિહાસ જાળવી શકો છો.