আমি সম্প্রতি হোপ এবং উলফের এন্টারপ্রাইজ ইন্টিগ্রেশন প্যাটার্নস, এসওএ-র টমাস এরলের কয়েকটি বই এবং উদি দহন এট-এর বিভিন্ন ভিডিও এবং পডকাস্টগুলি পড়ছি। সিকিউআরএস এবং ইভেন্ট ড্রাইভ সিস্টেমে।
আমার কাজের জায়গার সিস্টেমগুলি উচ্চ মিলনে ভুগছে। যদিও তাত্ত্বিকভাবে প্রতিটি সিস্টেমের নিজস্ব ডেটাবেস থাকে, তবে তাদের মধ্যে অনেকগুলি যোগ হয়। অনুশীলনে এর অর্থ এখানে একটি বিশাল ডাটাবেস যা সমস্ত সিস্টেম ব্যবহার করে। উদাহরণস্বরূপ, গ্রাহকের তথ্যগুলির একটি সারণী রয়েছে।
আমি যা পড়েছি তার বেশিরভাগটিই ড্যানোরালাইজিং ডেটার পরামর্শ দেয় বলে মনে হয় যাতে প্রতিটি সিস্টেম কেবল তার ডেটাবেস ব্যবহার করে এবং একটি সিস্টেমে থাকা আপডেটগুলি মেসেজিং ব্যবহার করে অন্য সকলের কাছে প্রচারিত হয়।
আমি ভেবেছিলাম এসওএ-র সীমানা কার্যকর করার অন্যতম উপায় - প্রতিটি পরিষেবার নিজস্ব ডেটাবেস থাকতে হবে তবে আমি এটি পড়েছি:
/programming/4019902/soa-joining-data-across-multiple-services
এবং এটি এটি করা ভুল জিনিস বলে প্রস্তাব দেয়।
ডাটাবেসগুলিকে আলাদা করা সিস্টেমগুলি ডিকোপলিংয়ের একটি ভাল উপায় বলে মনে হয় তবে এখন আমি কিছুটা বিভ্রান্ত। এটি কি ভাল রুট? কোনও এসওএ পরিষেবা, একটি ডিডিডি বাউন্ডেড প্রসঙ্গ, একটি অ্যাপ্লিকেশন ইত্যাদির উপর কোনও ডাটাবেসকে আলাদা করতে বলা উচিত কি?