Blog top image

CQRS pattern


CQRS এর পূর্ণরূপ হচ্ছে Command and Query Responsibility Segregation এখানে 

Command

Command  হচ্ছে ডাটাবেসে ডাটা পরিবর্তন হয় এমন কমান্ড। যেমন 

- insert 

- update 

- delete 


Query

Query হচ্ছে ডাটাবেসে ডাটা পরিবর্তন হয় না এমন কমান্ড, যেমন 

- select 


Segregation

Segregation মানে হচ্ছে command  এবং query এর জন্য  আলাদা সার্ভিস থাকবে এবং তাদের জন্য আলাদা ডাটাবেস থাকবে। মেসেজ ব্রোকার বা অন্য উপায়ে command সার্ভিস থেকে ডাটা query সার্ভিসে পাঠানো হবে। 


CQRS এর সুবিধা 

- রাইট অপটিমাইজ ডাটাবেস ব্যবহার করা যাবে command সার্ভিস এর জন্য 

- রিড অপটিমাইজ ডাটাবেস ব্যবহার করা যাবে query সার্ভিস এর জন্য 

- আলাদা ডাটাবেস টেকনোলজি ব্যবহার করা যাবে 

- দরকার অনুযায়ী query সার্ভিস এ অনেক ডুপলিকেট ডাটা রেখে এপ্লিকেশনকে ফাস্ট বানানো যায় 

- query সার্ভিসকে ইচ্ছে মতো একটা পার্টকে স্কেল করা যাবে 




CQRS এর অসুবিধা 

- ডাটা সব সময় ইভেনচুয়াল কনসিস্টেন্ট  হবে, মানে রিয়েল টাইম ডাটা পাওয়ার কোন গ্যারান্টি থাকবে না