पाठ 13 / 32

इवेंट-ड्रिवन आर्किटेक्चर और CQRS

Events से loosely coupled systems बनाएँ, और बढ़ी जटिलता संभालते हुए CQRS से reads को writes से अलग करें।

कॉल की जगह इवेंट

इवेंट-ड्रिवन आर्किटेक्चर में, एक सेवा सीधे दूसरी सेवाओं को कॉल करने के बजाय एक तथ्य प्रकाशित करती है ('OrderPlaced')। रुचि रखने वाली सेवाएँ सब्सक्राइब करती हैं और स्वतंत्र रूप से प्रतिक्रिया देती हैं — प्रकाशक को यह जानने की ज़रूरत नहीं कि कौन सुन रहा है।

ढीली कपलिंग, नए विफलता तरीके

प्रकाशक और सब्सक्राइबर स्वतंत्र रूप से डिप्लॉय, स्केल और विफल हो सकते हैं — विकास के लिए बढ़िया। कीमत: रिक्वेस्ट का कोई एक सिरे-से-सिरे ट्रेस नहीं, और जैसे-जैसे और सेवाएँ जुड़ती हैं, इवेंट स्कीमा और वर्ज़निंग अनुशासन चाहिए।

सूचना पट्ट बनाम फ़ोन कॉल

सीधी कॉल एक फ़ोन कॉल है — दूसरी तरफ़ से अभी उठाना ज़रूरी है। इवेंट प्रकाशित करना सूचना पट्ट पर नोटिस लगाने जैसा है: कोई भी जब गुज़रे तब पढ़ सकता है, और आप बोर्ड की अनुमति माँगे बिना बाद में और पाठक जोड़ सकते हैं।

त्वरित जाँच: CQRS किसी सिस्टम के मॉडल को किन दो रास्तों में अलग करता है?

  • कैश बनाम डेटाबेस
  • सिंक बनाम एसिंक
  • रीड (क्वेरी) बनाम राइट (कमांड)
  • Frontend बनाम backend
Answer

रीड (क्वेरी) बनाम राइट (कमांड) — CQRS (कमांड क्वेरी रिस्पॉन्सिबिलिटी सेग्रीगेशन) कमांड के लिए ऑप्टिमाइज़्ड राइट मॉडल और क्वेरी के लिए ऑप्टिमाइज़्ड, अक्सर डीनॉर्मलाइज़्ड, अलग रीड मॉडल उपयोग करता है।