আমি এই উত্তরটি প্রায় চার বছর আগে লিখেছি এবং আমার মতামত পরিবর্তন হয়নি। তবে তার পর থেকে মাইক্রো-সার্ভিসেস ফ্রন্টে উল্লেখযোগ্য উন্নয়ন হয়েছে। আমি শেষে মাইক্রো-পরিষেবা নির্দিষ্ট নোট যুক্ত করেছি ...
আমি আমার ভোটটি ব্যাক আপ করার বাস্তব-অভিজ্ঞতার সাথে ধারণার বিরুদ্ধে যাব।
আমাকে একটি বৃহত অ্যাপ্লিকেশনে নিয়ে আসা হয়েছিল যার একক ডাটাবেসের জন্য পাঁচটি প্রসঙ্গ রয়েছে। শেষ পর্যন্ত, আমরা একটি ব্যতীত সমস্ত প্রসঙ্গটি সরিয়ে দিয়ে শেষ করেছি - একক প্রসঙ্গে ফিরে আসছি।
প্রথমে একাধিক প্রসঙ্গে ধারণাটি একটি ভাল ধারণা বলে মনে হয়। আমরা ডোমেনে আমাদের ডেটা অ্যাক্সেসকে আলাদা করতে পারি এবং বেশ কয়েকটি পরিষ্কার হালকা ওজনের প্রসঙ্গ সরবরাহ করতে পারি। ডিডিডি লাগছে, তাই না? এটি আমাদের ডেটা অ্যাক্সেসকে সহজ করবে। আর একটি যুক্তি হল পারফরম্যান্সের জন্য যে আমরা কেবল আমাদের প্রয়োজন প্রসঙ্গে অ্যাক্সেস করি।
তবে বাস্তবে, আমাদের অ্যাপ্লিকেশনটি বাড়ার সাথে সাথে আমাদের অনেকগুলি সারণী আমাদের বিভিন্ন প্রসঙ্গে সম্পর্ক ভাগ করে নিল। উদাহরণস্বরূপ, প্রসঙ্গ 1-এ টেবিল এ-এর প্রশ্নের জন্যও প্রসঙ্গ 2 তে সারণি বি তে যোগদান করা প্রয়োজন।
এটি আমাদের বেশ কয়েকটি দুর্বল পছন্দ রেখে গেছে। আমরা বিভিন্ন প্রসঙ্গে টেবিলগুলি নকল করতে পারি। আমরা এটি চেষ্টা করেছি। এটি একটি EF সীমাবদ্ধতা সহ ম্যাপিংয়ের বিভিন্ন সমস্যা তৈরি করেছে যার জন্য প্রতিটি সত্তার একটি অনন্য নাম থাকা প্রয়োজন। সুতরাং আমরা বিভিন্ন প্রসঙ্গে পার্সোন 1 এবং পার্সোন 2 নামের সত্ত্বা দিয়ে শেষ করেছি। কেউ বলতে পারে এটি আমাদের পক্ষে নিখুঁত নকশা ছিল, কিন্তু আমাদের সর্বোত্তম প্রচেষ্টা সত্ত্বেও, বাস্তবিক ক্ষেত্রে আমাদের প্রয়োগটি এভাবেই বৃদ্ধি পেয়েছিল।
আমরা আমাদের প্রয়োজনীয় ডেটা পেতে উভয় প্রসঙ্গে জিজ্ঞাসা করার চেষ্টা করেছি। উদাহরণস্বরূপ, আমাদের ব্যবসায়িক যুক্তি প্রাসঙ্গিক 1 এবং এর অর্ধেকটি প্রসঙ্গ 2 থেকে যা প্রয়োজন তার অর্ধেকটি জিজ্ঞাসা করবে This এতে কিছু বড় সমস্যা ছিল। একক প্রসঙ্গের বিরুদ্ধে একটি ক্যোয়ারি করার পরিবর্তে আমাদের বিভিন্ন প্রসঙ্গে একাধিক ক্যোয়ারী করতে হয়েছিল। এটির একটি বাস্তব পারফরম্যান্স পেনাল্টি রয়েছে।
শেষ পর্যন্ত, সুসংবাদটি হ'ল একাধিক প্রসঙ্গটি ছড়িয়ে ফেলা সহজ ছিল। প্রসঙ্গটি একটি লাইটওয়েট অবজেক্ট হিসাবে লক্ষ্য করা যায়। সুতরাং আমি মনে করি না পারফরম্যান্স একাধিক প্রসঙ্গে একটি ভাল যুক্তি। প্রায় সব ক্ষেত্রেই, আমি বিশ্বাস করি যে একটি একক প্রসঙ্গটি সহজ, কম জটিল, সম্ভবত এটি আরও ভাল সম্পাদন করবে এবং এটি কাজ করতে আপনাকে একগুচ্ছ পরিশ্রমের প্রয়োগ করতে হবে না।
আমি এমন একটি পরিস্থিতির কথা ভেবেছিলাম যেখানে একাধিক প্রসঙ্গ কার্যকর হতে পারে। এটিতে একাধিক ডোমেন রয়েছে এমন ডাটাবেসটিতে কোনও শারীরিক সমস্যা সমাধানের জন্য একটি পৃথক প্রসঙ্গ ব্যবহার করা যেতে পারে। আদর্শভাবে, একটি প্রসঙ্গটি কোনও ডোমেনের কাছে এক থেকে এক হতে পারে, যা ডাটাবেসে একের সাথে এক হবে। অন্য কথায়, যদি কোনও টেবিলের সেট কোনও প্রদত্ত ডাটাবেসে অন্য টেবিলগুলির সাথে সম্পর্কিত না হয়, তবে সম্ভবত তাদের আলাদা আলাদা ডাটাবেসে টেনে আনতে হবে। আমি বুঝতে পারি যে এটি সর্বদা ব্যবহারিক নয়। তবে যদি টেবিলের সেটটি এত আলাদা হয় যে আপনি সেগুলি একটি পৃথক ডাটাবেসে আলাদা করতে স্বাচ্ছন্দ্য বোধ করবেন (তবে আপনি এটি পছন্দ করেন না) তবে আমি পৃথক প্রসঙ্গটি ব্যবহারের ক্ষেত্রে কেসটি দেখতে পাচ্ছি, তবে কেবলমাত্র দুটি পৃথক ডোমেন থাকার কারণে।
মাইক্রো-পরিষেবাগুলি সম্পর্কে, একটি একক প্রসঙ্গ এখনও বোধগম্য হয়। যাইহোক, মাইক্রো-পরিষেবাগুলির জন্য, প্রতিটি পরিষেবার নিজস্ব প্রসঙ্গ থাকবে যা কেবলমাত্র সেই পরিষেবার সাথে সম্পর্কিত ডেটাবেস টেবিলগুলিকে অন্তর্ভুক্ত করে। অন্য কথায়, যদি পরিষেবা x 1 এবং 2 টেবিলগুলিতে অ্যাক্সেস করে এবং পরিষেবা y 3 এবং 4 টেবিলগুলিতে অ্যাক্সেস করে তবে প্রতিটি পরিষেবার নিজস্ব স্বতন্ত্র প্রসঙ্গ থাকতে পারে যার মধ্যে সেই পরিষেবার সাথে নির্দিষ্ট সারণী অন্তর্ভুক্ত থাকে।
আমি আপনার চিন্তায় আগ্রহী।