রিয়েল-টাইম অ্যানালিটিক্সের জন্য একটি অবজারভেবিলিটি-চালিত (Observability-driven) ডেটা পাইপলাইন ডিজাইন করা
আপনি এমন একটি ডেটা পাইপলাইন তৈরি করতে চান যা রিয়েল-টাইম অ্যানালিটিক্স প্রদান করবে। এটি করার জন্য, আপনাকে এমন একটি সিস্টেম ডিজাইন করতে হবে যা উচ্চ-গতির (high-velocity) ইভেন্টগুলো হ্যান্ডেল করতে পারে, স্বল্প ল্যাটেন্সিতে (low latency) সেগুলো প্রসেস করতে পারে এবং অপারেটরদের কার্যকরী ইনসাইট (actionable insights) প্রদান করতে পারে।
এখানে মূল উপাদানগুলো দেওয়া হলো:
- ইনজেস্ট লেয়ার (Ingest layer): Kafka বা Kinesis-এর মতো স্ট্রিমিং সোর্স অ্যাডাপ্টার
- প্রসেসিং লেয়ার (Processing layer): অ্যাগ্রিগেশন এবং এনরিচমেন্টের জন্য স্ট্রিম প্রসেসিং
- স্টোরেজ লেয়ার (Storage layer): রিপ্লেবিলিটির জন্য ইমিউটেবল ইভেন্ট স্টোর এবং অ্যানালিটিক্সের জন্য রিড-অপ্টিমাইজড স্টোর
- সার্ভিং/কোয়েরি লেয়ার (Serving/query layer): ম্যাটেরিয়ালাইজড ভিউ এবং প্রি-অ্যাগ্রিগেশন টেবিল
- অবজারভেবিলিটি লেয়ার (Observability layer): ট্রেসিং, মেট্রিক্স, লগ, ড্যাশবোর্ড এবং অ্যালার্টিং
শুরু করার জন্য, আপনার প্রয়োজনীয়তাগুলো (requirements) সংজ্ঞায়িত করুন:
- ইনজেশন রেট (Ingestion rate): প্রতি সেকেন্ডে ১০০k ইভেন্ট
- এন্ড-টু-এন্ড ল্যাটেন্সি (End-to-end latency): ≤ ৩০০ ms
- কোয়েরি প্যাটার্ন (Query patterns): টাইম-বাউন্ডেড অ্যাগ্রিগেশন এবং টেইল ল্যাটেন্সির (tail latency) জন্য SLOs
আপনার অবজারভেবিলিটি আউটকামগুলো (observability outcomes) বেছে নিন:
- ল্যাটেন্সি এবং ডেটা স্কিউ (data skew) নির্ণয় করার জন্য পর্যাপ্ত টেলিমেট্রি
- আউটটেজের (outages) জন্য দ্রুত রুট-কজ অ্যানালাইসিস (root-cause analysis)