ডিডিডি, সাগা এবং ইভেন্টসোর্সিং: কোনও ক্ষতিপূরণ ক্রিয়াকলাপ কি ইভেন্টের দোকানে মুছে ফেলা যায়?


15

আমি বুঝতে পারলাম উপরোক্ত প্রশ্নটি সম্ভবত কয়েকটি 'কি ??' উত্থাপন করেছে, তবে আমাকে ব্যাখ্যা করার চেষ্টা করুন:

আমি মূলত সাগা-প্যাটার্নের ( http://www.rgoarchitects.com/Files/SOAPatterns/Saga.pdf ) ইভেন্ট-সোর্সিংয়ের (ADDD- ধারণাটির সাথে) মিশ্রণ নিয়ে বেশ কয়েকটি সম্পর্কিত ধারণাটিতে মাথা জড়ানোর চেষ্টা করছি : http://en.wikedia.org/wiki/Domain-driven_design )

এটি একটি ভাল পোস্ট যা এটি একসাথে জড়িয়ে দেয়: https://blog.jonathanoliver.com/cqrs-sagas-with-event-sourcing-part-ii-of-ii/

আমি এক মিনিটের মধ্যে প্রশ্নটি পেয়ে যাচ্ছি, তবে আমি মনে করি যে এটি সম্পর্কে আমি প্রথমে যা বুঝি তার সংক্ষিপ্ত করার চেষ্টা করতে হবে (যা ভালই হতে পারে, তাই দয়া করে যদি ঠিক হয় তবে) কেননা এটি আমার পক্ষে কেন প্রভাব ফেলবে প্রশ্ন জিজ্ঞাসা দিয়ে শুরু:

  1. সাগা প্যাটার্ন হ'ল এক ধরণের ব্রোকার যা কোনও অ্যাকশন দেয় (শেষ ব্যবহারকারী, স্বয়ংক্রিয় ইত্যাদি etc. মূলত যে কোনও কিছু যা ডেটা পরিবর্তন করতে চলেছে) সেই ক্রিয়াটি ব্যবসায়ের ক্রিয়াকলাপে ভাগ করে দেয় এবং এই ক্রিয়াকলাপের প্রতিটি বার্তা বার্তায় বার্তা হিসাবে প্রেরণ করে যা পরিবর্তে যত্ন নেওয়ার জন্য এটি সংশ্লিষ্ট সামগ্রিক শিকড়গুলিতে প্রেরণ করে।
  2. এই সামগ্রিক শিকড়গুলি সম্পূর্ণ স্বায়ত্তশাসিতভাবে পরিচালনা করতে পারে (উদ্বেগগুলির দুর্দান্ত বিভাজন, দুর্দান্ত স্কেলাবিলিটি ইত্যাদি)
  3. একটি সাগা-দৃষ্টান্তে কোনও ব্যবসায়িক যুক্তি নেই, এটি সামগ্রিক শিকড়গুলিতে এতে কার্যকলাপ প্রেরণ করে। সাগায় থাকা কেবলমাত্র 'যুক্তি' হ'ল 'প্রক্রিয়া'-যুক্তি, (প্রায়শই স্টেটম্যাচাইন হিসাবে প্রয়োগ করা হয়), যা প্রাপ্ত ক্রিয়াকলাপগুলির (পাশাপাশি ফলো-আপ ইভেন্টগুলি) কী করণীয় (যেমন: কী ক্রিয়াকলাপগুলি প্রেরণ করতে হবে) এর উপর ভিত্তি করে নির্ধারণ করে
  4. সাগা-নিদর্শনগুলি এক ধরণের বিতরণ লেনদেনের ধরণ প্রয়োগ করে। উদাহরণস্বরূপ: যখন সামগ্রিক শিকড়গুলির মধ্যে একটি (যা স্বতঃস্ফূর্তভাবে কাজ করে, প্রত্যেকের অস্তিত্বের কথা না জেনে) ব্যর্থ হয়, তখন পুরো ক্রিয়াটি আবার ঘুরিয়ে দিতে হতে পারে।
  5. এটি সাগরে তাদের ক্রিয়াকলাপের রিপোর্টটি সম্পূর্ণ করার পরে, সমস্ত সামগ্রিক শিকড় থাকার মাধ্যমে প্রয়োগ করা হয়। (সাফল্যের পাশাপাশি ত্রুটির ক্ষেত্রে)
  6. সমস্ত সমষ্টিগত শিকড় যদি সাফল্য ফিরে পায় তবে সাগা পরবর্তী সিদ্ধান্ত নেওয়ার সিদ্ধান্ত নিলে (বা সিদ্ধান্ত নিয়েছে)
  7. ব্যর্থতার ক্ষেত্রে, সাগা সমস্ত সামগ্রিক শিকড়কে ইস্যু করে যা শেষ কর্মে একটি তথাকথিত ক্ষতিপূরণ ক্রিয়াতে অংশ নিয়েছিল, যেমন: সর্বমোট শিকড়গুলির প্রতিটিই শেষ ক্রিয়াটিকে পূর্বাবস্থায়িত করার একটি ক্রিয়া।
  8. ক্রিয়াটি "প্লাস 1 ভোট" হলে এটি কেবল একটি 'বিয়োগ 1 ভোট' করছে তবে এটি আগের সংস্করণে ব্লগপোস্ট পুনরুদ্ধার করার মতো জটিল হতে পারে।
  9. ইভেন্ট-সোর্সিং (ব্লগপোস্ট দুটির সংমিশ্রণ দেখুন) লক্ষ্য করে যে প্রতিটি সামগ্রিক শিকড় একটি কেন্দ্রীভূত ইভেন্ট স্টোরের দ্বারা পরিচালিত প্রতিটি ক্রিয়াকলাপের ফলাফলগুলি সংরক্ষণ করে (পরিবর্তনগুলিকে এই প্রসঙ্গে "ইভেন্টগুলি বলা হয়)"
  10. এই ইভেন্ট স্টোরটি 'সত্যের একক সংস্করণ' এবং সঞ্চিত ইভেন্টগুলি পুনরাবৃত্তি করে (মূলত কোনও ইভেন্ট লগের মতো) সমস্ত সত্তার স্থিতি পুনরায় খেলতে ব্যবহার করা যেতে পারে This
  11. দুটির সংমিশ্রণ (যেমন: সামগ্রিক শিকড়গুলিকে সাগায় ফেরত রিপোর্ট করার আগে তাদের পরিবর্তনগুলি সংরক্ষণের জন্য ইভেন্ট-সোর্সিং ব্যবহার করতে দেওয়া) প্রচুর চমৎকার সম্ভাবনা সক্ষম করে, যার মধ্যে একটি আমার প্রশ্নের উদ্বেগ ...

আমি অনুভব করেছি যে এটি আমার কাঁধ থেকে নামিয়ে নেওয়া দরকার, যেহেতু এটি একবারে উপলব্ধি করা অনেক বেশি। এই প্রসঙ্গে / মানসিকতা দেওয়া (আবার, দয়া করে ভুল হলে সঠিক করুন)

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

এটি আমার কাছে প্রচুর পরিমাণে উপলব্ধি করবে (এবং এই সংমিশ্রণের আরও একটি দুর্দান্ত উপকার হবে) তবে যেমনটি আমি বলেছিলাম আমি এই ধারণাগুলির একটি ভুল / অসম্পূর্ণ বোঝার ভিত্তিতে এই অনুমানগুলি করছি।

আমি আশা করি এটি খুব দীর্ঘায়িত হবে না।

ধন্যবাদ।

উত্তর:


9

আপনার ইভেন্ট স্টোর থেকে ইভেন্টগুলি মুছবেন না। এগুলি ঘটেছিল এমন কিছু উপস্থাপন করে। যদি এখনই কিছু ঘটে থাকে তবে আপনার এটিও জেনে রাখা উচিত, অতএব এমন ইভেন্ট যুক্ত করুন যা আপনার সামগ্রিকটিকে আগের কোনও অবস্থাতে ফিরে যেতে বাধ্য করবে। আপনার ডেটাবেস থেকে তথ্য মুছে ফেলার জন্য এটি দুঃখের বিষয়।

গ্রেগ ইয়াং এবং সরানো আইটেম থেকে কার্টের উদাহরণ সম্পর্কে ভাবেন। আগামীকাল হতে পারে ক্ষতিপূরণমূলক ক্রিয়াকলাপের তথ্য কোনও মূল্য হতে পারে ..

কাহিনী হিসাবে, প্রতিটি জিনিস সঠিক, যতদূর আমি নিজেকে জানি। রাজ্যের যন্ত্র হিসাবে আপনাকে সাগা ভাবা উচিত। এটি কেবল তাই করে।

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

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


কীভাবে সমষ্টিগুলি জানবে যে কোনও অবস্থায় ফিরে যেতে হবে? ইভেন্ট-স্টোর বা কিছু কিছুর বিরুদ্ধে জিজ্ঞাসা করার অনুমতি দেওয়া হবে?
গের্ট-জানুয়ারী

এটি ফিরিয়ে নেওয়া উচিত নয় তবে অন্য একটি ইভেন্ট যুক্ত করা উচিত। সামগ্রিক কিছু করার জন্য সাগাটি যে কমান্ডটি জারি করছে তা হ'ল। এই ক্রিয়াটির একটি ইভেন্ট হবে।
আর্থিস

হ্যাঁ আমি বুঝেছি. "রিভার্ট" সম্ভবত খারাপ-বেছে নেওয়া হয়েছিল। নিম্নলিখিতটি বিবেচনা করুন: আমি নথি প্রকাশনা / অনুমোদনের প্রবাহের অন্যান্য বিষয়গুলির মধ্যেও মডেলিংয়ের জন্য সাগাসের সাথে ইভেন্ট সোর্সিংটি ব্যবহার করতে চাই। কোনও সম্পাদক যদি এমন একটি চেঞ্জব্লগবডি-অ্যাকশন প্রেরণ করে যা চূড়ান্তভাবে একটি ব্লগবডিচ্যাঞ্জড-ইভেন্ট হিসাবে ইভেন্ট স্টোরটিতে অবিরত থাকে। এরপরে, কোনও কারণে, একটি ক্ষতিপূরণ ক্রিয়া জারি করা হয়। অ্যাগ্রিগ্রেট কীভাবে জানবেন যে কী কী ঘটনাকে আগুনের ক্ষতিপূরণ দেয় যা ব্লগ বডির বিষয়বস্তুগুলিতে পরিবর্তিত হওয়ার আগে যেমন পরিবর্তনব্লগবডি-অ্যাকশন জারির আগে হয়েছিল?
গিরত-জানু

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

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

6

পরিপূর্ণতার জন্য আমি মার্টিন ফোলারের কাছ থেকে রাষ্ট্রকে ফিরিয়ে আনার উপায়গুলি সম্পর্কিত কোনও প্রাসঙ্গিক স্নিপেট অন্তর্ভুক্ত করার কথা ভেবেছিলাম:

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

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

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

থেকে: http://martinfowler.com/eaaDev/EventSourcing.html


1

ধারণার দিক থেকে:

  • ঘটনা কিছু ঘটেছিল something গত পরিবর্তন করা যাবে না.
  • আদেশ হ'ল কিছু করা। আদেশ না ঘটতে পারে (প্রত্যাখ্যানও হতে পারে)।

আমরা কেবলমাত্র আরেকটি কমান্ড (ক্ষতিপূরণ ক্রিয়া) কার্যকর করে আমাদের ভবিষ্যতের অবস্থা পরিবর্তন করতে পারি যার ফলস্বরূপ ইভেন্টগুলির আবেদনের অবস্থা পরিবর্তন হওয়া উচিত।

প্রশ্নটি "ডি-বিভ্রান্ত" করতে, "শেষ ইভেন্টটি মুছুন" এই বাক্যাংশটি সম্পর্কে ভাবুন:

  • শেষ ইভেন্টটি যদি মুছে ফেলতে হয় না তবে কী হবে? অন্য ঘটনাগুলি মুছে ফেলার পরে যদি ঘটে? এই ইভেন্টগুলিও খুব পরিবর্তন করতে হবে (কারণ তাদের পূর্বের ইভেন্টগুলি মুছে ফেলার মাধ্যমে তাদের বেস অবস্থাটি পরিবর্তিত হত)।
  • বাহ্যিক সিস্টেমে যদি ইভেন্টটি প্রেরণ করা হত? অন্য ইভেন্ট প্রেরণ ব্যতীত এর রাজ্যটি সংশোধন করার জন্য আপনার অ্যাক্সেস নেই।

সংক্ষেপে, আপনার কাছে সিকিউআরএস প্যাটার্নের মধ্যে ইভেন্টগুলি মোছার কোনও বিকল্প নেই।

আপনি স্ন্যাপশট স্টেট তৈরি করে আপনার ইভেন্ট স্টোরটি সঙ্কুচিত করতে পারেন (যা সেই রাজ্যের দিকে পরিচালিত সমস্ত ইভেন্টের উপর ভিত্তি করে) তবে এই শারীরিক দিকটির ইভেন্টের ধারণার সাথে কোনও সম্পর্ক নেই।


0

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

কেউ কেউ বলেন ইভেন্টটি মুছে ফেলা ইভেন্ট সোর্সিং বা সিকিউআরএসের "নীতিগুলি" লঙ্ঘন করে। আমি মনে করি এটি সীমাবদ্ধ সাধারণীকরণ। আমি মনে করি যে কোনও ইভেন্টটি যদি বিশ্বব্যাপী লেনদেনের ক্ষেত্রের মধ্যে তৈরি করা হয়েছিল যা বাতিল করা হচ্ছে তবে এটি মুছে ফেলা ঠিক। সিউডোকোড বিবেচনা করুন:

try {
    newEvents = processMycommand(myCommand)
    for (Event newEvent : newEvents)
        EventStore.insertEvent(newEvent);
} catch (Exception e) {
    EventStore.rollback();
}

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

যদি এটি কোনও এসআইডি ডাটাবেস লেনদেনের জন্য (কমিট / রোলব্যাকের সাথে লেনদেন) যুক্তিসঙ্গত হয় তবে ক্ষতিপূরণ লেনদেনের জন্য এটি যুক্তিসঙ্গত হবে না কেন?

গ্লোবাল সাগা লেনদেন কার্যকর করার সময়, ডেটা পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে দেওয়া যায় (ক্ষতিপূরণ দিয়ে)। লেনদেনের সময় যে ইভেন্টটি তৈরি হয়েছিল তা রাখার দরকার নেই কারণ লেনদেন সম্পূর্ণ হয়নি।

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


0

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

এখানে চিত্র বর্ণনা লিখুন রেফ: https ://cambridge-inte Fightnce.com/bringing-time-series-data-to- Life-with-keylines/

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

আমি যতদূর জানি. এটি সমাধানের একমাত্র উপায় হ'ল একটি নতুন ইভেন্ট স্টোরেজ তৈরি করা যেখানে আপনি যে ইভেন্টগুলি করতে চান না তা বাদ দিন এবং তারপরে পুরানো ইভেন্টের সঞ্চয়স্থান সরিয়ে ফেলুন। তবে এটি একটি একক ইভেন্ট সরানোর চরম সমাধান। যদি আমরা জিডিপিআর সম্পর্কে কথা বলি, তবে আমি কেবলমাত্র আপেক্ষিকর ভাল সমাধানটি জানি যা ইভেন্ট স্টোরেজে এনক্রিপ্ট করা ব্যক্তিগত ডেটা সঞ্চয় করা এবং একটি পৃথক ডাটাবেস থেকে এনক্রিপশন কী সরিয়ে ফেলা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.