১৯ ফেব, ২০২৫·8 মিনিট পড়তে

ব্যবসায়িক অ্যাপগুলির জন্য ডেটা সংরক্ষণ নীতি: সময়সীমা ও কর্মপ্রবাহ

ক্লিয়ার সময়সীমা, আর্কাইভিং এবং মুছে ফেলা বা অনানিমাইজেশন ফ্লোসহ কিভাবে ব্যবসায়িক অ্যাপগুলির জন্য ডেটা সংরক্ষণ নীতি ডিজাইন করবেন যা রিপোর্টিং কার্যকর রাখে তা শিখুন।

ব্যবসায়িক অ্যাপগুলির জন্য ডেটা সংরক্ষণ নীতি: সময়সীমা ও কর্মপ্রবাহ

একটি রিটেনশন নীতি আসলে কী সমস্যা সমাধান করে

একটি রিটেনশন নীতি আপনার অ্যাপ যে ডেটা রাখবে, কতক্ষণ রাখবে, কোথায় সংরক্ষণ করবে এবং সময় শেষ হলে কী করবে—এসব সম্পর্কে পরিষ্কার নিয়মের সেট। উদ্দেশ্য সবকিছু মুছে ফেলা নয়; বরং ব্যবসা চালাতে ও অতীত ঘটনার ব্যাখ্যা দিতে যা দরকার তা রাখা এবং যা দরকার নেই তা তুলে ফেলা।

পরিকল্পনা ছাড়া তিনটি সমস্যা দ্রুত দেখা দেয়। স্টোরেজ চুপিচুপি বাড়ে যতক্ষণ না তা বাস্তব অর্থে ব্যয় বাড়ায়। প্রতিলিপির প্রতিটি কপি গোপনীয়তা ও সিকিউরিটি ঝুঁকি বাড়ায়। আর যখন পুরনো রেকর্ড আজকের লজিকের সঙ্গে মেলে না, বা মানুষ অ্যাডহকভাবে কিছু মুছে ফেলে ড্যাশবোর্ড হঠাৎ পরিবর্তিত হলে রিপোর্টিং অনির্ভরযোগ্য হয়ে ওঠে।

একটি বাস্তবসম্মত রিটেনশন নীতি দৈনন্দিন অপারেশন, প্রমাণ, এবং গ্রাহক সুরক্ষার মধ্যে ভারসাম্য রাখে:

  • অপারেশন: লোকেরা তাদের কাজ চালিয়ে যেতে পারে।
  • প্রমাণ: পরে একটি ট্রানজাকশন ব্যাখ্যা করা যাবে।
  • গ্রাহক: ব্যক্তিগত ডেটা অকারণ দীর্ঘসময় ধরে রাখা হবে না।

বেশিরভাগ ব্যবসায়িক অ্যাপে একই ধরনের ডেটা সেকশন থাকে, নামভেঙে হলেও: ইউজার প্রোফাইল, ট্রানজাকশন, অডিট ট্রেইল, মেসেজ, এবং আপলোড করা ফাইল।

নীতি আংশিক নিয়ম, আংশিক ওয়ার্কফ্লো, এবং আংশিক টুলিং। নিয়মটি বলতে পারে, “সাপোর্ট টিকিট ২ বছর রাখুন।” ওয়ার্কফ্লো প্রায়োগিকভাবে সেটা মানে কী—পুরনো টিকিটগুলো আর্কাইভ এলাকায় সরানো, কাস্টমার ফিল্ডগুলো অনানিমাইজ করা, এবং কি হয়েছে তা রেকর্ড করা। টুলিং সেটা পুনরাবৃত্তিমূলক ও অডিটযোগ্য করে তোলে।

আপনি যদি AppMaster-এ অ্যাপ তৈরি করেন, তাহলে রিটেনশনকে একটি প্রোডাক্ট বিহেভিয়র হিসেবে দেখুন, একবারের ক্লিনআপ নয়। শিডিউলড Business Processes একইভাবে ডেটা আর্কাইভ, মুছে ফেলা বা অনানিমাইজ করতে পারে যাতে রিপোর্টিং ধারাবাহিক থাকে এবং মানুষ সংখ্যাগুলোতে বিশ্বাস রাখে।

সময় উইন্ডো নির্বাচন করার আগে ক্ল্যারিফাই করার নিয়মাবলি

তারিখ নির্ধারণ করার আগে পরিষ্কার করুন কেন আপনি ডেটা রাখছেন। রিটেনশন সিদ্ধান্ত সাধারণত গঠিত হয় গোপনীয়তা আইন, গ্রাহক চুক্তি, এবং অডিট বা ট্যাক্স নিয়ম দ্বারা। এই ধাপ বাদ দিলে আপনি হয় বেশি রাখবেন (অধিক ঝুঁকি ও খরচ) কিংবা এমন কিছু মুছে ফেলবেন যা পরে প্রয়োজন হয়।

শুরুতেই “অবশ্যই রাখা” এবং “রাখা ভাল” আলাদা করুন। অবশ্যই রাখা ডেটা প্রায়ই ইনভয়েস, অ্যাকাউন্টিং এন্ট্রি, এবং সেই অডিট লগ যা প্রমাণ করে কে কখন কী করেছে—এসব। রাখলে ভাল ডেটা হতে পারে পুরনো চ্যাট ট্রান্সক্রিপ্ট, বিস্তারিত ক্লিক হিস্ট্রি, বা কাঁচা ইভেন্ট লগ যা মাঝে মাঝে বিশ্লেষণে লাগে।

চাহিদা দেশ ও ইন্ডাস্ট্রির উপরেও পরিবর্তিত হয়। একটি হেলথকেয়ারের সাপোর্ট পোর্টালের সীমাবদ্ধতা একটি B2B অ্যাডমিন টুলের থেকে ভিন্ন হবে। একই কোম্পানির ভেতরও একাধিক দেশে ব্যবহার থাকলে একই রেকর্ড টাইপের জন্য আলাদা নিয়ম প্রযোজ্য হতে পারে।

সিদ্ধান্তগুলো সহজ ভাষায় লিখুন এবং একজন মালিক নির্ধারণ করুন। “টিকিট 24 মাস রাখি” যথেষ্ট নয়। কী অন্তর্ভুক্ত, কী বাদ, এবং উইন্ডো শেষ হলে কী হবে (archive, anonymize, delete)—এসব নির্ধারণ করুন। একজন ব্যক্তি বা টিমের দায়িত্ব দিন যাতে প্রোডাক্ট বা আইন বদলে গেলে আপডেট আটকে না যায়।

ইঞ্জিনিয়ারিং কিছু বানানোর আগে অনুমোদন নিন। লিগাল ন্যূনতম ও ডিলিশন বাধ্যবাধকতা নিশ্চিত করবে। সিকিউরিটি ঝুঁকি, অ্যাক্সেস কন্ট্রোল ও লগিং নিশ্চিত করবে। প্রোডাক্ট ঠিক করবে ব্যবহারকারীরা কী দেখতে চায়। ফাইন্যান্স রেকর্ডকিপিং চাহিদা নিশ্চিত করবে।

উদাহরণ: আপনি ইনভয়েস ৭ বছর রাখার সিদ্ধান্ত নিতে পারেন, টিকিট ২ বছর রাখবেন, এবং অ্যাকাউন্ট ক্লোজার পরে ইউজার প্রোফাইল ফিল্ডগুলো অনানিমাইজ করবেন কিন্তু অ্যাগ্রিগেট মেট্রিক্স রাখবেন। AppMaster-এ এই লিখিত নিয়মগুলো সহজে শিডিউলড প্রসেসে ম্যাপ করা যায় এবং পরে অনুমান কমে যায়।

ডেটা টাইপ, সংবেদনশীলতা এবং অবস্থান অনুযায়ী ম্যাপ করা

রিটেনশন নীতি তখনই ব্যর্থ হয় যখন দলগুলো “2 বছর রাখো” বলে সিদ্ধান্ত নেয় কিন্তু বোঝে না “এটা” কী। একটি সহজ মানচিত্র তৈরি করুন আপনার আছে এমন ডেটার। নিখুঁত হওয়ার চেষ্টা করবেন না—লক্ষ্য রাখুন এমন কিছু যা একটি সাপোর্ট লিড এবং একটি ফাইন্যান্স লিড দুইজনেই বুঝবে।

টাইপ ও সংবেদনশীলতা অনুযায়ী শ্রেণীবিন্যাস

কিছু ব্যবহারিক শুরুযোগ্য সেট:

  • কাস্টমার ডেটা: প্রোফাইল, টিকিট, অর্ডার, মেসেজ
  • এমপ্লয়ী ডেটা: HR রেকর্ড, অ্যাক্সেস লগ, ডিভাইস তথ্য
  • অপারেশনাল ডেটা: ওয়ার্কফ্লো, সিস্টেম ইভেন্ট, অডিট লগ
  • আর্থিক ডেটা: ইনভয়েস, পেআউট, ট্যাক্স ফিল্ড
  • কনটেন্ট ও ফাইল: আপলোড, এক্সপোর্ট, এটাচমেন্ট

তারপর সংবেদনশীলতা সহজ ভাষায় চিহ্নিত করুন: পার্সোনাল ডেটা (নাম, ইমেইল), আর্থিক (ব্যাংক ডিটেইল, পেমেন্ট টোকেন), ক্রেডেনশিয়াল (পাসওয়ার্ড হ্যাশ, API কী), অথবা নিয়ন্ত্রিত ডেটা (যেমন স্বাস্থ্য তথ্য)। নিশ্চিত না হলে “সম্ভাব্য সংবেদনশীল” লেবেল দিন এবং নিশ্চিত না হওয়া পর্যন্ত সতর্কভাবে আচরণ করুন।

কোথায় থাকে এবং কে নির্ভরশীল তা ম্যাপ করুন

“কোথায় থাকে” সাধারণত আপনার প্রধান ডাটাবেসের চেয়েও বেশি। নির্দিষ্ট অবস্থান নোট করুন: ডাটাবেস টেবিল, ফাইল স্টোরেজ, ইমেইল/SMS লগ, অ্যানালিটিক্স টুল, বা ডেটা ওয়্যারহাউস। পাশাপাশি নোট করুন কে কোন ডেটাসেটের ওপর নির্ভরশীল (সাপোর্ট, সেলস, ফাইন্যান্স, লিডারশিপ) এবং কত ঘন ঘন। এটা বলে দেয় কী খারাপ হবে যদি আপনি বেশি আগ্রাসীভাবে ডিলিট করেন।

একটি সহায়ক অভ্যাস: প্রতিটি ডেটাসেটের উদ্দেশ্য এক বাক্যে ডকুমেন্ট করুন। উদাহরণ: “সাপোর্ট টিকিট তর্ক মেটাতে এবং রেসপন্স টাইম ট্রেন্ড ট্র্যাক করতে রাখা হয়।”

আপনি যদি AppMaster-এ তৈরি করে থাকেন, তবে ডেটা ডিজাইনার মডেল, ফাইল হ্যান্ডলিং, এবং সক্রিয় ইন্টিগ্রেশন রিভিউ করে এই ইনভেন্টরির সাথে বাস্তবে যা ডিপ্লয় আছে তা মিলিয়ে নিতে পারবেন।

মানচিত্র তৈরি হলে রিটেনশন এক বড় অনুমানের পরিবর্তে ছোট, স্পষ্ট সিদ্ধান্তের সিরিজ হয়ে ওঠে।

মানুষ অনুসরণ করতে পারার মতো রিটেনশন উইন্ডো কীভাবে সেট করবেন

একটি উইন্ডো তখনই কাজ করে যখন তা ব্যাখ্যা করা সহজ এবং প্রয়োগ করা আরও সহজ। অনেক দল এমন সহজ টিয়ারগুলোতে ভালো করে যা ডেটার ব্যবহারের সাথে মেলে: হট (প্রতি দিন ব্যবহৃত), ওয়ার্ম (মাঝে মাঝে ব্যবহৃত), কোল্ড (প্রমাণের জন্য রাখা), তারপর মুছে বা অনানিমাইজ করা। টিয়ারগুলো একটি বিমূর্ত নীতিকে রুটিনে পরিনত করে।

একটি গ্লোবাল নম্বরে না গিয়ে ক্যাটাগরি অনুযায়ী উইন্ডো সেট করুন। ইনভয়েস ও পেমেন্ট রেকর্ড সাধারণত ট্যাক্স ও অডিটের জন্য দীর্ঘ কোল্ড সময় প্রয়োজন। সাপোর্ট চ্যাট ট্রান্সক্রিপ্ট দ্রুত মূল্য হারায়।

এছাড়া সিদ্ধান্ত করুন কী থেকে ঘড়ির ক্যালকুল শুরু হবে। “2 বছর রাখো” অর্থহীন যদি আপনি না বলেন “2 বছর কোন তারিখ থেকে।” প্রতিটি ক্যাটাগরির জন্য একটিই ট্রিগার নিন, যেমন তৈরি তারিখ, সর্বশেষ কাস্টমার activity, টিকিট ক্লোজ ডেট, বা অ্যাকাউন্ট ক্লোজার। ট্রিগার ভিন্ন হলে মানুষ অনুমান করবে এবং রিটেনশন ভিজল হয়ে যাবে।

অপবাদগুলো আগে থেকে লিখে রাখুন যাতে দলগুলো পরে ইমপ্রোভাইজ না করে। সাধারণ অপবাদগুলোর মধ্যে আছে লিগ্যাল-হোল্ড, চার্জব্যাক, এবং ফ্রড তদন্ত। এগুলো ডিলিশন স্থগিত করবে—কিন্তু গোপন কপি তৈরি করবে না।

চূড়ান্ত নিয়মগুলো সংক্ষিপ্ত ও টেস্টযোগ্য রাখুন:

  • সাপোর্ট চ্যাট: শেষ মেসেজের 6 মাস পরে অনানিমাইজ করুন যদি লিগাল-হোল্ড না থাকে
  • ম arketing leads: যদি কোনো কন্ট্র্যাক্ট না থাকে, সর্বশেষ activity-এর 12 মাস পরে মুছে ফেলুন
  • কাস্টমার অ্যাকাউন্ট: ক্লোজার থেকে 30 দিন পরে ডিলিট; ইনভয়েস 7 বছর রাখুন
  • সিকিউরিটি লগ: 90 দিন হট, তদন্তের জন্য 12 মাস কোল্ড রাখুন
  • কোনো রেকর্ডে যদি legal_hold=true ফ্ল্যাগ থাকে: ক্লিয়ার না হওয়া পর্যন্ত মুছবেন না

আর্কাইভ কৌশল যা ডেটাকে ব্যবহারযোগ্য ও সস্তা রাখে

একটি ডেটাসেট সম্পূর্ণভাবে শিপ করুন
প্রথমে একটি ডেটাসেটে ইন্ড-টু-এন্ড প্রোটোটাইপ তৈরি করুন, তারপর একই প্যাটার্ন বাকি অ্যাপে পুনরায় ব্যবহার করুন।
AppMaster চেষ্টা করুন

আর্কাইভ ব্যাকআপ নয়। ব্যাকআপ ভুল বা আউটেজের পর পুনরুদ্ধারের জন্য। আর্কাইভ ইচ্ছাকৃত: পুরনো ডেটা আপনার হট টেবিল থেকে সস্তা স্টোরেজে যায়, কিন্তু অডিট, বিবাদ, ও ঐতিহাসিক প্রশ্নের জন্য পাওয়া যাবে।

অনেক অ্যাপের দুটোই প্রয়োজন। ব্যাকআপ ঘন ও বিস্তৃত। আর্কাইভ নির্বাচিত ও নিয়ন্ত্রিত, এবং আপনি সাধারণত কেবল প্রয়োজনীয় আইটেমই পুনরুদ্ধার করেন।

সাশ্রয়ী কিন্তু এখনও খোঁজা যায় এমন স্টোরেজ নির্বাচন করুন

সাশ্রয়ী স্টোরেজ তখনই সাহায্য করে যখন মানুষ এখনও প্রয়োজনীয় বস্তু খুঁজে পায়। অনেক দল একটি আলাদা ডাটাবেস বা স্কিমা ব্যবহার করে যা রিড-হেভি কুয়েরির জন্য টিউন করা থাকে, অথবা ফাইল এক্সপোর্ট করে প্লাস একটি ইনডেক্স টেবিল লুকআপের জন্য। যদি আপনার অ্যাপ PostgreSQL-ভিত্তিক হয় (AppMaster সহ), একটি “archive” স্কিমা বা আলাদা ডাটাবেস প্রোডাকশন টেবিল দ্রুত রাখে এবং অনুমোদিত রিপোর্টিং-এ আর্কাইভড ডেটার উপর কাজ করতে দেয়।

ফরম্যাট নির্বাচন করার আগে নির্ধারণ করুন ব্যবসায়িকভাবে “searchable” মানে কী। সাপোর্ট হয়তো ইমেইল বা টিকিট ID-তে লুকআপ করতে চাইবে। ফাইন্যান্স হয়তো মাস ভিত্তিক ট্রান্সঅ্যাকশন টোটাল লাগবে। অডিটরা হয়তো অর্ডার ID অনুসারে ট্রেস চাইবে।

কী আর্কাইভ করবেন: পূর্ণ রেকর্ড নাকি সারমর্ম

পূর্ণ রেকর্ড ডিটেইল রাখে, কিন্তু খরচ বেশি এবং গোপনীয়তা ঝুঁকি বাড়ে। সারমর্ম (মাসিক টোটাল, কাউন্ট, কী স্ট্যাটাস চেঞ্জ) সস্তা এবং প্রায়ই রিপোর্টিংয়ের জন্য যথেষ্ট।

বাস্তবসম্মত রোডম্যাপ:

  • অডিট-ক্রিটিকাল অবজেক্টের জন্য পূর্ণ রেকর্ড আর্কাইভ করুন (ইনভয়েস, রিফান্ড, অ্যাক্সেস লগ)
  • হাই-ভলিউম ইভেন্টের জন্য সারমারি আর্কাইভ করুন (ক্লিক, পেজ ভিউ, সেন্সর পিং)
  • হট স্টোরেজে ছোট একটি রেফারেন্স স্লাইস রাখুন (সাধারণত সর্বশেষ 30–90 দিন)

ইন্ডেক্স ফিল্ড প্রথম থেকেই প্ল্যান করুন। সাধারণ ইনডেক্সগুলো হল প্রাইমারি ID, ইউজার/কাস্টমার ID, একটি তারিখ বাকেট (মাস), অঞ্চল, এবং স্ট্যাটাস। এগুলো ছাড়া আর্কাইভড ডেটা আছে কিন্তু পুনরুদ্ধার কষ্টসাধ্য হবে।

রিস্টোর নিয়মও নির্ধারণ করুন: কে রিস্টোর অনুরোধ করতে পারে, কে অনুমোদন করবে, রিস্টোর করা ডেটা কোথায় যাবে, এবং প্রত্যাশিত সময়সীমা। যদি রিস্টোর ধীর হয় এবং তা ঝুঁকি কমায়, তবুও সেটা প্রত্যাশনীয় হতে হবে।

মুছে ফেলা বনাম অনানিমাইজেশন: সঠিক পদ্ধতি নির্বাচন

নীতিকে কর্মপ্রবাহে পরিণত করুন
ভিজ্যুয়াল Business Processes দিয়ে আর্কাইভ, অনানিমাইজেশন এবং পরিস্কার ফ্লো তৈরি করে নিন যা দল রিভিউ করতে পারে।
নির্মাণ শুরু করুন

রিটেনশন নীতি সাধারণত একটি সিদ্ধান্ত করায়: রেকর্ড ডিলিট হবে নাকি ব্যক্তিগত তথ্য মোছা হবে। দুটোই সঠিক হতে পারে, কিন্তু ভিন্ন উদ্দেশ্য সার্ভ করে।

হার্ড ডিলিট ফিজিক্যালি রেকর্ড সরিয়ে দেয়। যখন ডেটা রাখার কোনো আইনগত বা ব্যবসায়িক কারণ নেই এবং থাকা ঝুঁকি বাড়ায় (যেমন সংবেদনশীল বিবরণসহ পুরনো চ্যাট ট্রান্সক্রিপ্ট), তখন এটি উপযুক্ত।

সফট ডিলিট সারিটি রাখে কিন্তু ডিলিট হিসেবে চিহ্ন দেয় (প্রায়ই deleted_at টাইমস্ট্যাম্প দিয়ে) এবং সাধারণ স্ক্রিন ও API থেকে লুকিয়ে রাখে। সফট ডিলিট তখনই কাজে লাগে যখন ইউজার রিস্টোর আশা করে বা ডাউনস্ট্রিম সিস্টেম রেকর্ড রেফারেন্স করে। কিন্তু সফট-ডিলিট করা ডেটা এখনও আছে, স্টোরেজ নেয়, এবং যদি সব এক্সপোর্ট ও কুয়েরি ঠিকভাবে ফিল্টার না করে তাহলে লিক হতে পারে।

অনানিমাইজেশন ইভেন্ট বা ট্রানজাকশন রেখে ব্যক্তিকে শনাক্ত করা যায় এমন সব কিছু মুছে বা প্রতিস্থাপন করে। সঠিকভাবে করলে এটি রিভার্স করা যায় না। পিউডোনিমাইজেশন ভিন্ন: আপনি আইডেন্টিফায়ারগুলো (যেমন ইমেইল) টোকেনে বদলে রাখেন কিন্তু আলাদা ম্যাপিং রাখেন যা ব্যক্তিকে পুনরায় শনাক্ত করতে দেয়। এটা ফ্রড তদন্তে সহায়ক হতে পারে, কিন্তু এটি সম্পূর্ণ অজ্ঞাতকরণ নয়।

সম্পর্কিত ডেটা সম্পর্কে স্পষ্ট থাকুন—এখানেই নীতিগুলো ভেঙে পড়ে। একটি রেকর্ড মুছে ফেলা কিন্তু এটাচমেন্ট, থাম্বনেল, ক্যাশ, সার্চ ইনডেক্স বা অ্যানালিটিক্স কপি রেখে দেওয়া নীতির উদ্দেশ্যকে ব্যর্থ করে দিতে পারে।

আপনি এই কাজটি হয়েছে তার প্রমাণও রাখতে হবে। একটি সহজ ডিলিশন রশিদ রাখুন: কী মুছে বা অনানিমাইজ করা হয়েছে, কখন চালানো হয়েছে, কোন ওয়ার্কফ্লো চালানো হয়েছিল, এবং সেটি সফলভাবে সম্পন্ন হয়েছে কি না। AppMaster-এ একটি Business Process যখন কাজ শেষ করে তখন একটি অডিট এন্ট্রি লিখে এমনটা সহজে করা যায়।

ব্যক্তিগত ডেটা অপসারণের পরও রিপোর্টিং মান বজায় রাখার উপায়

যখন আপনি রেকর্ড মুছে বা অনানিমাইজ করেন এবং আপনার ড্যাশবোর্ড সময় অনুযায়ী যোগ দেয়, তখন রিপোর্ট ভেঙে পড়ে। কিছু পরিবর্তন করার আগে কোন সংখ্যাগুলো মাস থেকে মাস তুলনীয় থাকতে হবে তা লিখে রাখুন। না হলে পরে আপনি ডিবাগ করবেন “গত বছরের চার্ট কেন বদলে গেল?”—এর মতো সমস্যা।

প্রথমে এমন মেট্রিক্সের একটি সংক্ষিপ্ত তালিকা বানান যা সঠিক থাকা উচিত:

  • রাজস্ব ও রিফান্ড দৈনিক/সাপ্তাহিক/মাসিক ভিত্তিতে
  • প্রোডাক্ট ব্যবহার: অ্যাক্টিভ ইউজার, ইভেন্ট কাউন্ট, ফিচার অ্যাডপশন
  • SLA মেট্রিক্স: রেসপন্স টাইম, রেজোলিউশন টাইম, uptime
  • ফানেল ও কনভারশন রেট
  • সাপোর্ট ভলিউম: টিকিট, ক্যাটাগরি, ব্যাকলগ বয়স

তারপর রিপোর্টিংয়ের জন্য কী রাখা দরকার সেটা পুনরায় ডিজাইন করুন যাতে তা পার্সোনাল আইডেন্টিফায়ারের ওপর নির্ভর না করে। সবচেয়ে নিরাপদ উপায় হল অ্যাগ্রিগেশন। প্রতিটি কাঁচা রো সার্বক্ষণিকভাবে রাখা না করে দৈনিক টোটাল, সাপ্তাহিক কোহর্ট, এবং কাউন্ট রাখুন যেগুলো কোনো ব্যক্তির কাছে ট্রেস করা যায় না। উদাহরণস্বরূপ, আপনি “প্রতি দিন প্রতিটি ক্যাটাগরিতে তৈরি হওয়া টিকিট” এবং “সাপ্তাহিক মিডিয়ান প্রথম রেসপন্স টাইম” রাখতে পারেন এমনকি পরে টিকিট কন্টেন্ট মুছে দিলেও।

পরিচয়বিহীন কিন্তু স্থিতিশীল অ্যানালিটিক্স কী রাখা যায়

কিছু রিপোর্ট সময়ের ওপর গ্রুপিং করতে স্থায়ী কী লাগে। একটি সারোগেট অ্যানালিটিক্স কী ব্যবহার করুন যা সরাসরি শনাক্তযোগ্য নয় (উদাহরণ: কেবল অ্যানালিটিক্সের জন্য ব্যবহৃত র‍্যান্ডম UUID), এবং রিটেনশন উইন্ডো শেষ হলে বাস্তব ইউজার ID-র ম্যাপিং মুছে বা লক করে দিন।

এছাড়া অপারেশনাল টেবিল থেকে রিপোর্টিং টেবিল আলাদা করুন যতটা পারেন। অপারেশনাল ডেটা বদলে যায় এবং মুছে যায়। রিপোর্টিং টেবিল হওয়া উচিত অ্যাপেন্ড-অনলি স্ন্যাপশট বা অ্যাগ্রিগেট।

অনানিমাইজেশনের পরে কী পরিবর্তন হবে তা নির্ধারণ করুন

অনানিমাইজেশনের পর কিছু প্রভাব পড়ে—এগুলো দলগুলোকে অপ্রত্যাশিত না করতে ডকুমেন্ট করুন:

  • নির্দিষ্ট তারিখের পরে ইউজার-লেভেল ড্রিল-ডাউন বন্ধ হতে পারে
  • ইতিহাসগত সেগমেন্টগুলো “অজানা” হয়ে যেতে পারে যদি অ্যাট্রিবিউট মুছে দাওয়া হয়
  • ইমেইল বা ফোন মুছে দিলে ডুপ্লিকেশন পরিবর্তিত হতে পারে
  • কিছু অডিটের জন্য ব্যক্তিগত-নন টাইমস্ট্যাম্প ও আইডিগুলো এখনও প্রয়োজন হতে পারে

AppMaster-এ অনানিমাইজেশনকে একটি ওয়ার্কফ্লো মানুন: প্রথমে অ্যাগ্রিগেট লেখুন, রিপোর্ট আউটপুট যাচাই করুন, তারপর সোর্স রেকর্ডের ফিল্ডগুলো অনানিমাইজ করুন।

ধাপে ধাপে: নীতিকে বাস্তব ওয়ার্কফ্লোতে রূপান্তর

আপনার রিপোর্টিং মডেল রক্ষা করুন
পার্সোনাল আইডেন্টিফায়ারের ওপর নির্ভর না করে অ্যাগ্রিগেট ও স্ন্যাপশট রেখে ড্যাশবোর্ড স্থিতিশীল রাখুন।
শুরু করুন

একটি রিটেনশন নীতি তখনই কাজ করে যখন এটি স্বাভাবিক সফটওয়্যার আচরণে পরিণত হয়। এটাকে অন্য কোনো ফিচারের মতো বিবেচনা করুন: ইনপুট নির্ধারণ করুন, অ্যাকশন নির্ধারণ করুন, এবং ফলাফল দৃশ্যমান করুন।

এক পাতার ম্যাট্রিক্স দিয়ে শুরু করুন। প্রতিটি ডেটা টাইপের জন্য রিটেনশন উইন্ডো, ট্রিগার, এবং পরবর্তী অ্যাকশন (keep, archive, delete, anonymize) লিখে রাখুন। মানুষ যদি এক মিনিটে ব্যাখ্যা করতে না পারে, তবে এটি মেনে চলা হবে না।

রেকর্ডগুলো “রহস্যভাবেই অদৃশ্য” না হয়ে ওঠার জন্য স্পষ্ট লাইফসাইকেল স্টেট যোগ করুন। বেশিরভাগ অ্যাপ তিনটি দিয়ে চলবে: active, archived, এবং pending delete। স্টেটটি রেকর্ডের উপরে সংরক্ষণ করুন, কেবল স্প্রেডশিটে নয়।

একটি বাস্তবসম্মত ইমপ্লিমেন্টেশন সিকোয়েন্স:

  1. রিটেনশন ম্যাট্রিক্স তৈরি করে সেটা প্রোডাক্ট, লিগাল, অপস টিমের জন্য উপলব্ধ করুন।
  2. লাইফসাইকেল ফিল্ড যোগ করুন (স্ট্যাটাস এবং যেমন archived_at, delete_after টাইপ ফিল্ড) এবং স্ক্রিন ও API-তে সেগুলো অনুসরণ করুন।
  3. শিডিউলড জব বাস্তবায়ন করুন (দৈনিক সাধারণ): একটি জব আর্কাইভ করবে, আরেকটি শর্টলিস্ট করা আইটেমগুলো পরিস্কার বা অনানিমাইজ করবে।
  4. একটি এক্সসেপশন পথ যোগ করুন: কে ডিলিশন পজ করতে পারে, কতক্ষণ, এবং কি কারণ রেকর্ড করা লাগবে।
  5. প্রোডাকশন-লাইক কপিতে টেস্ট করুন, তারপর মূল রিপোর্টকে (কাউন্ট, টোটাল, ফানেল) আগে এবং পরে তুলনা করুন।

উদাহরণ: সাপোর্ট টিকিটগুলো 90 দিন সক্রিয় থাকতে পারে, তারপর 18 মাসের জন্য আর্কাইভে যায়, তারপর অনানিমাইজ করা হয়। ওয়ার্কফ্লো টিকিটগুলো আর্কাইভ হিসেবে চিহ্নিত করে, বড় এটাচমেন্টগুলো সস্তা স্টোরেজে সরায়, টিকিট ID ও টাইমস্ট্যাম্প রাখে, এবং নাম ও ইমেইল অনানিমাইজ করে অদৈনন্দিন মান রাখা হয়।

AppMaster-এ লাইফসাইকেল স্টেটগুলো Data Designer-এ থাকতে পারে, এবং আর্কাইভ/পর্গ লজিক শিডিউলড Business Processes হিসেবে চালানো যেতে পারে। লক্ষ্য হল পুনরাবৃত্তিমূলক রান ও স্পষ্ট লগ যা অডিট করা সহজ।

ডেটা ক্ষতি বা ভাঙা রিপোর্টের সাধারণ ভুলগুলো

অধিকাংশ রিটেনশন ব্যর্থতা উইন্ডোই নয়—বরং তখন হয় যখন ডিলিশন ভুল টেবিলে যায়, সম্পর্কিত ফাইল মিস হয়, বা কী বদলে দেয় যা রিপোর্ট আস্থা রাখে।

একটি সাধারণ দৃশ্য: সাপোর্ট টিম “পুরনো টিকিট” মুছে দেয় কিন্তু আলাদা টেবিলে বা ফাইল স্টোরে থাকা এটাচমেন্ট ভুলে যায়। পরে অডিটর রিফান্ডের প্রমাণ চায়—টিকিট টেক্সট আছে, কিন্তু স্ক্রিনশটগুলো নেই।

অন্যান্য সাধারণ ফাঁদ:

  • মূল রেকর্ড মুছে ফেলা কিন্তু সাইড টেবিল (এটাচমেন্ট, কমেন্ট, অডিট লগ) অনরফ্যান রেখে দেওয়া
  • রাউ ডিভেন্টগুলি মুছে ফেলা যা ফাইন্যান্স, সিকিউরিটি বা কমপ্লায়েন্সকে এখনও সামঞ্জস্য করতে হয়
  • চিরস্থায়ীভাবে সফট ডিলিটে নির্ভর করা, ফলে ডাটাবেস বাড়তে থাকে এবং ডিলিট করা ডেটা এক্সপোর্টে দেখা যায়
  • অনানিমাইজেশনের সময় আইডেন্টিফায়ার (যেমন user_id) পরিবর্তন করা কিন্তু ড্যাশবোর্ড, জয়েন, সেভড কুয়েরি আপডেট না করা
  • এক্সসেপশন ও লিগাল হোল্ডের কোনো মালিক না থাকা, ফলে মানুষ নিয়ম বাইপাস করে

আরেকটি ঘন ঘন ভাঙন হল ব্যক্তিভিত্তিক কী-তে নির্মিত রিপোর্ট। ইমেইল ও নাম ওভাররাইট করা সাধারণত ঠিক আছে। কিন্তু অভ্যন্তরীণ user ID বদলে দিলে এক ব্যক্তির ইতিহাস চুপসে আলাদা ID-তে বিভক্ত হয়ে যেতে পারে, এবং মাসিক অ্যাক্টিভ ইউজার বা লাইফটাইম ভ্যালু রিপোর্ট মাঠে বিচ্যুতি দেখা দেবে।

দুইটি ফিক্স বেশিরভাগ দলের সমস্যার সমাধান করে। প্রথমত, এমন রিপোর্টিং কী নির্ধারণ করুন যা কখনো বদলাবে না (উদাহরণ: একটি অভ্যন্তরীণ account ID) এবং ব্যক্তিগত ফিল্ড থেকে আলাদা রাখুন। দ্বিতীয়ত, ডিলিশনকে একটি পূর্ণাঙ্গ ওয়ার্কফ্লো হিসেবে বাস্তবায়ন করুন যা সমস্ত সম্পর্কিত ডেটা (ফাইল, লগ ইত্যাদি) একে একে ঝকঝকে ভাবে পরিষ্কার করে। AppMaster-এ এটা প্রায়শই একটি Business Process-এ ম্যাপ করে: একটি ইউজার বা অ্যাকাউন্ট থেকে শুরু করে নির্ভরশীলতা সংগ্রহ করে, তারপর নিরাপদ ক্রমে ডিলিট বা অনানিমাইজ করে।

অবশেষে সিদ্ধান্ত নিন কে লিগাল হোল্ড পজ করতে পারে এবং সেই পজ কিভাবে লিপিবদ্ধ হবে। যদি এক্সসেপশনের মালিক না থাকে, নীতি অনিয়মে প্রয়োগ হবে।

চালু করার আগে দ্রুত চেকলিস্ট

আপনার অ্যাপে সংরক্ষণ স্বয়ংক্রিয় করুন
সংরক্ষণ নীতিকে লাইফসাইকেল ফিল্ড হিসেবে মডেল করুন এবং কাস্টম কোড ছাড়াই সেগুলি শিডিউলে চালান।
AppMaster পরীক্ষা করুন

ডিলিশন বা আর্কাইভ জব চালানোর আগে একটি বাস্তবতা পরীক্ষা করুন। অধিকাংশ ব্যর্থতা হয় কারণ কেউ জানে না ডেটার মালিক কে, কপি কোথায় আছে, বা রিপোর্ট কিভাবে তার ওপর নির্ভর করে।

একটি রিটেনশন নীতির প্রয়োজন স্পষ্ট দায়িত্ব ও টেস্টযোগ্য পরিকল্পনা—কেবল ডকুমেন্ট নয়।

প্রি-লঞ্চ চেকলিস্ট

  • প্রতিটি ডেটাসেটের জন্য একজন মালিক নিযুক্ত করুন (যে পরিবর্তন অনুমোদন ও প্রশ্নের উত্তর দিতে পারে)।
  • নিশ্চিত করুন প্রতিটি ডেটা ক্যাটাগরির একটি রিটেনশন উইন্ডো ও ট্রিগার আছে (উদাহরণ: “টিকিট ক্লোজ থেকে 90 দিন” বা “সর্বশেষ লগইন থেকে 2 বছর”)।
  • প্রমাণ করুন আপনি একই রেকর্ডকে যেখানে যেখানে দেখা যায় সেগুলো খুঁজে পেতে পারেন: ডাটাবেস, ফাইল স্টোরেজ, এক্সপোর্ট, লগ, অ্যানালিটিক্স কপি, এবং ব্যাকআপ।
  • আর্কাইভগুলি ব্যবহারযোগ্য আছে কি না যাচাই করুন: সার্চ ও জয়নের জন্য ন্যূনতম ফিল্ড রাখুন (ID, তারিখ, স্ট্যাটাস) এবং কী ড্রপ হবে তা ডকুমেন্ট করুন।
  • নিশ্চিত করুন আপনি প্রমাণ দিতে পারেন: কী ডিলিট বা অনানিমাইজ করা হয়েছে, কখন চালানো হয়েছে, এবং কোন নিয়ম অনুসরণ করা হয়েছে।

একটি সহজ ভ্যালিডেশন হলো ড্রাই রান: একটি ছোট ব্যাচ নিন (যেমন এক কাস্টমারের পুরানো কেস), টেস্ট পরিবেশে ওয়ার্কফ্লো চালান, তারপর মুখ্য রিপোর্টগুলো আগে ও পরে তুলনা করুন।

“প্রমাণ” কেমন হওয়া উচিত

ব্যক্তিগত ডেটা পুনরায় পরচালনের ঝুঁকি না বাড়িয়ে প্রমাণ সংরক্ষণ করুন:

  • টাইমস্ট্যাম্প সহ জব রুন লগ, রুল নাম, এবং রেকর্ড কাউন্ট
  • একটি অপরিবর্তনীয় অডিট টেবিলে রেকর্ড ID ও নেওয়া অ্যাকশন (deleted বা anonymized)
  • লিগাল-হোল্ডে থাকা আইটেমগুলোর সংক্ষিপ্ত এক্সসেপশন লিস্ট
  • যে মেট্রিক্সগুলো স্থিতিশীল থাকার কথা তাদের একটি রিপোর্ট স্ন্যাপশট

আপনি যদি AppMaster-এ তৈরি করেন, এসব চেক সরাসরি ইমপ্লিমেন্টেশন-এ মানচে যায়: Data Designer-এ রিটেনশন ফিল্ড, Business Process Editor-এ শিডিউলড জব, এবং স্পষ্ট অডিট আউটপুট।

উদাহরণ: এমন একটি কাস্টমার পোর্টাল রিটেনশন প্ল্যান যা রিপোর্ট ভাল রাখে

এক্সসেপশনগুলি পরিষ্কারভাবে হ্যান্ডল করুন
লিগ্যাল-হোল্ড ফ্ল্যাগ এবং এক্সসেপশন পথ যোগ করুন যাতে ডিলিশন পজ করা স্পষ্ট ও সঙ্গতিপূর্ণ হয়।
AppMaster পরীক্ষা করুন

কল্পনা করুন একটি কাস্টমার পোর্টাল যা সাপোর্ট টিকিট, ইনভয়েস ও রিফান্ড, এবং কাঁচা অ্যাক্টিভিটি লগ (লগইন, পেজ ভিউ, API কল) সংরক্ষণ করে। লক্ষ্য হলো ঝুঁকি ও স্টোরেজ খরচ কমানো কিন্তু বিলিং, অডিট, বা ট্রেন্ড রিপোর্ট ভাঙা না করা।

প্রথমে এমন ডেটা আলাদা করুন যা অবশ্যই রাখতে হবে এবং যা শুধু দৈনন্দিন সাপোর্টে লাগে।

একটি সহজ রিটেনশন সময়সূচি হতে পারে:

  • সাপোর্ট টিকিট: ক্লোজের 18 মাস পর্যন্ত পূর্ণ কন্টেন্ট রাখুন
  • ইনভয়েস ও পেমেন্ট রেকর্ড: 7 বছর রাখুন
  • কাঁচা অ্যাক্টিভিটি লগ: 30 দিন রাখুন
  • সিকিউরিটি অডিট ইভেন্ট (অ্যাডমিন পরিবর্তন, পারমিশন আপডেট): 12 মাস রাখুন

পুরানো টিকিটের জন্য একটি আর্কাইভ স্টেপ যোগ করুন। প্রতিটি মেসেজ চিরকাল মেইন টেবিলে রাখার বদলে, ক্লোজ হওয়া টিকিট যেগুলো 18 মাসের বেশি পুরোনো সেইগুলো আর্কাইভ এলাকায় সরিয়ে দিন এবং ছোট একটি সার্চেবল সারমরি রাখুন: টিকিট ID, তারিখ, প্রোডাক্ট এরিয়া, ট্যাগ, রেজোলিউশন কোড, এবং শেষ এজেন্ট নোটের একটি সংক্ষিপ্ত এক্সার্প্ট। এটা পুরো প্রেক্ষাপট রাখে কিন্তু ব্যক্তিগত বিস্তারিত কম রাখে।

ক্লোজ করা অ্যাকাউন্টগুলির ক্ষেত্রে, আপনি যদি ট্রেন্ড রাখতে চান তাহলে ডিলিটের বদলে অনানিমাইজেশন বেছে নিন। ব্যক্তিগত শনাক্তকরণকারী যেমন নাম, ইমেইল, ঠিকানা র‍্যান্ডম টোকেনে প্রতিস্থাপন করুন, কিন্তু প্ল্যান টাইপ ও মাসিক টোটালগুলো রেখে দিন। দৈনিক ব্যবহারগত অ্যাগ্রিগেট (DAU, মাসিক টিকিট, রাজস্ব প্রতি মাস) আলাদা রিপোর্টিং টেবিলে রাখুন যাতে সেখানে কোনো ব্যক্তিগত ডেটা না থাকে।

মাসিক রিপোর্টিং বদলে যেতে পারে, কিন্তু পরিকল্পনা করলে সেটা খারাপ হওয়া উচিত নয়:

  • টিকিট ভলিউম ট্রেন্ড ঠিক থাকবে কারণ তা ট্যাগ ও রেজোলিউশন কোড থেকে আসে, পুরো টেক্সট থেকে নয়
  • রাজস্ব রিপোর্ট স্থিতিশীল থাকবে কারণ ইনভয়েস রাখা আছে
  • দীর্ঘমেয়াদী ব্যবহার ট্রেন্ড আর্কাইভ বা অ্যাগ্রিগেট থেকে আসবে, কাঁচা লগ থেকে নয়
  • কোহর্ট এখন পরিচয় থেকে অ্যাকাউন্ট-লেভেল টোকেনে স্থানান্তর হতে পারে

AppMaster-এ আর্কাইভ ও অনানিমাইজেশন স্টেপগুলো শিডিউলড Business Processes হিসেবে চালানো যায়, যাতে নীতি প্রতিবার একইভাবে কার্যকর হয়।

পরবর্তী ধাপ: নীতিকে পুনরাবৃত্তিমূলক অটোমেশনে পরিণত করুন

একটি রিটেনশন নীতি তখনই সফল হবে যখন মানুষ তা মেনে চলে এবং সিস্টেম তা ধারাবাহিকভাবে আঁটকে রাখে। একটি সহজ রিটেনশন ম্যাট্রিক্স দিয়ে শুরু করুন: প্রতিটি ডেটাসেট, মালিক, উইন্ডো, ট্রিগার, পরবর্তী অ্যাকশন (archive, delete, anonymize), এবং সাইন-অফ। লিগাল, সিকিউরিটি, ফাইন্যান্স এবং কাস্টমার টিকিট হ্যান্ডলিং টিমের সঙ্গে রিভিউ করুন।

একসাথে সবকিছু অটোমেট করবেন না। প্রথমে একটি ডেটাসেটে সম্পূর্ণভাবে কাজ করুন—সামনে সাধারণ কিছু যেমন সাপোর্ট টিকিট বা লগইন লগ। ওয়ার্কফ্লোটি বাস্তব করুন, এক সপ্তাহ চালান, এবং নিশ্চিত করুন রিপোর্টিং ব্যবসার প্রত্যাশা অনুযায়ী আছে। তারপর একই প্যাটার্ন বাকি ডেটাসেটে প্রয়োগ করুন।

অটোমেশনকে পর্যবেক্ষণযোগ্য রাখুন। মৌলিক মনিটরিং সাধারণত কভার করে:

  • জব ব্যর্থতা (আর্কাইভ বা পরিস্কার রান করেছিল ও সম্পন্ন হয়েছিল কি না)
  • আর্কাইভ বৃদ্ধির ট্রেন্ড (স্টোরেজ পরিবর্তন)
  • ডিলিশন ব্যাকলগ (যে আইটেমগুলো যোগ্য কিন্তু প্রসেস হয়নি)
  • রিপোর্ট ড্রিফট (রিটেনশন রান করলে কীমেট্রিক্স পরিবর্তন করছে কি না)

ইউজার-ফেসিং দিকও পরিকল্পনা করুন। ব্যবহারকারী কি অনুরোধ করতে পারে (এক্সপোর্ট, ডিলিশন, কারেকশন), কে অনুমোদন করবে, এবং সিস্টেম কী করবে—এসব ঠিক করুন। সাপোর্টকে একটি সংক্ষিপ্ত অভ্যন্তরীণ স্ক্রিপ্ট দিন: কোন ডেটা প্রভাবিত হবে, কত সময় লাগবে, এবং ডিলিশনের পরে কী পুনরুদ্ধার করা যাবে না।

কাস্টম কোড না লিখেই এইটা ইমপ্লিমেন্ট করতে চান? AppMaster (appmaster.io) রিটেনশন অটোমেশনের জন্য ব্যবহারযোগ্য কারণ আপনি Data Designer-এ লাইফসাইকেল ফিল্ড মডেল করতে পারেন এবং শিডিউলড আর্কাইভ ও অনানিমাইজেশন Business Processes চালাতে পারেন অডিট লগিং সহ। প্রথমে একটি ডেটাসেট নিয়ে শুরু করুন, সেটাকে নির্ভরযোগ্য করুন, তারপর একই প্যাটার্নে বাকি অ্যাপে পুনরাবৃত্তি করুন।

প্রশ্নোত্তর

What does a data retention policy actually solve in a business app?

একটি সংরক্ষণ নীতি অপ্রত্যাশিত ডেটা বৃদ্ধি এবং “সবকিছুই রাখি” ধাঁচের ঝুঁকি রোধ করে। এটি কী রাখা হবে, কতক্ষণ রাখা হবে এবং সময় শেষে কী হবে—এসবের জন্য স্বচ্ছ নিয়ম নির্ধারণ করে যা খরচ, গোপনীয়তা ঝুঁকি এবং রিপোর্টিং-এ হঠাৎ চমক প্রতিরোধ করে।

How do I choose retention windows without guessing?

ডেটা কেন আছে এবং কে এটা ব্যবহার করে—এই প্রশ্ন থেকে শুরু করুন: অপারেশন, অডিট/ট্যাক্স, এবং গ্রাহক সুরক্ষা। ডেটা টাইপ অনুযায়ী সহজ সময়সীমা নিন (ইনভয়েস, টিকিট, লগ, ফাইল) এবং আগে থেকেই লিগাল, সিকিউরিটি, ফাইন্যান্স ও প্রোডাক্টের সম্মতি নিন যাতে পরে ওয়ার্কফ্লো উল্টে দিতে না হয়।

What should “keep for 2 years” be measured from?

প্রতি ক্যাটাগরির জন্য একটি স্পষ্ট ট্রিগার নির্ধারণ করুন—যেমন টিকিট বন্ধের তারিখ, সর্বশেষ activity, বা অ্যাকাউন্ট ক্লোজার। যদি ট্রিগার অস্পষ্ট থাকে, বিভিন্ন দল আলাদা আলাদা অর্থ নিবে এবং ‘2 বছর’ অনুশীলনে পাঁচটি আলাদা জিনিস হয়ে যাবে।

How should we handle exceptions like legal holds or fraud investigations?

একটি লিগাল-হোল্ড ফ্ল্যাগ বা স্টেট ব্যবহার করুন যা নির্দিষ্ট রেকর্ডগুলির আর্কাইভ/অনানিমাইজ/ডিলিশন পজ করে এবং সেটি দৃশ্যমান ও অডিটযোগ্য রাখুন। লক্ষ্য হল স্বাভাবিক ওয়ার্কফ্লো থামানো, কিন্তু গোপন কপি তৈরি না করা।

What’s the difference between an archive and a backup?

ব্যাকআপ দুর্ঘটনা বা আউটেজ থেকে পুনরুদ্ধারের জন্য। আর্কাইভ deliberate: পুরনো ডেটা হট টেবিল থেকে সস্তা স্টোরেজে চলে যায় কিন্তু প্রয়োজনে উদ্ধারযোগ্য থাকে—অডিট, বিবাদ, বা ঐতিহাসিক প্রশ্নের জন্য।

When should I delete data vs anonymize it?

যখন ডেটা রাখার কোনো ব্যবসায়িক বা আইনগত কারণ থাকে না এবং থাকা ঝুঁকি বাড়ায়—তখন ডিলিট করুন। যখন আপনি ট্রেন্ড বা প্রুফ রাখতে চান কিন্তু ব্যক্তিগত ফিল্ডগুলো সরিয়ে দিতে পারেন—তখন অনানিমাইজ করুন।

Why can soft deletes cause problems in retention policies?

সফট ডিলিট রিস্টোর ও রেফারেন্স বজায় রাখার জন্য উপকারী, কিন্তু এটা পুরোপুরি অপসারণ নয়। সফট-ডিলিটেড সারিগুলো স্টোরেজ নেয় এবং যদি প্রতিটি কুয়েরি ও এক্সপোর্ট সেগুলো ফিল্টার না করে তাহলে লিক হতে পারে।

How can we keep reporting useful if we anonymize or delete old records?

দীর্ঘমেয়াদি মেট্রিক্সকে অ্যাগ্রিগেট বা স্ন্যাপশট হিসেবে সংরক্ষণ করুন যাতে এগুলো ব্যক্তিগত আইডেন্টিফায়ারের ওপর নির্ভর না করে। যদি ড্যাশবোর্ডগুলো এমন ফিল্ডে জয়েন করে যা আপনি অনানিমাইজ করতে চান, তাহলে প্রথমে রিপোর্টিং মডেল পুনরায় ডিজাইন করুন।

How do you implement retention as repeatable workflows in AppMaster?

রিটেনশনকে একটি প্রোডাক্ট ফিচারের মতো বিবেচনা করুন: রেকর্ডে লাইফসাইকেল ফিল্ড, সময় ভিত্তিক কাজ চালানো (archive, purge/anonymize), এবং কি ঘটেছে তার অডিট এন্ট্রিস—এসবই AppMaster-এ Data Designer ফিল্ড ও নির্ধারিত Business Processes হিসেবে মানানসই করে।

What should we check before turning retention automation on?

একটি টেস্ট বা প্রোডাকশন-লাইক কপি নিয়ে ছোট সার্ভে বা ড্রাই রান করুন এবং মূল টোটালগুলো আগে ও পরে মিলিয়ে দেখুন। একই সাথে ট্রেস করুন রেকর্ডটি কোথায় কোথায় আছে (টেবিল, ফাইল স্টোরেজ, এক্সপোর্ট, লগ, ব্যাকআপ) এবং ডিলিশন/অনানিমাইজেশন রশিদের(timestamp, rule name, counts) প্রমাণ রাখুন।

শুরু করা সহজ
কিছু আশ্চর্যজনকতৈরি করুন

বিনামূল্যের পরিকল্পনা সহ অ্যাপমাস্টারের সাথে পরীক্ষা করুন।
আপনি যখন প্রস্তুত হবেন তখন আপনি সঠিক সদস্যতা বেছে নিতে পারেন৷

এবার শুরু করা যাক