5

डीडीडी में कुल मिलाकर लेनदेन सीमा का प्रतिनिधित्व करना चाहिए। एक लेनदेन जिसके लिए एक से अधिक योग की भागीदारी की आवश्यकता होती है अक्सर यह संकेत होता है कि मॉडल को परिष्कृत किया जाना चाहिए, या लेनदेन संबंधी आवश्यकताओं की समीक्षा की जानी चाहिए, या दोनों।एकाधिक समेकन प्रति लेनदेन रूट इंस्टेंसियां ​​

क्या इसका मतलब यह है कि लेनदेन सीमा प्रति कुल रूट इंस्टेंस या प्रति कुल है?

कहें कि मेरे पास "नोड" नामक एक समग्र रूट है, प्रत्येक "नोड" के भीतर मेरे पास "फ़ील्ड्स (वैल्यू ऑब्जेक्ट्स)" का संग्रह है। प्रत्येक "फ़ील्ड" एक प्रकार का है, और टाइप "नोड" का हो सकता है। मेरे मामले में, यदि यह टाइप "नोड" है, तो मैं आईडी को "नोड" कुल रूट में संग्रहीत करूंगा।

Node (AggregateRootID 1) 
---> Field1 : String (John) 
---> Field2 : String (Doe) 
---> Field3 : Node (AggregateRootID 2) 

Node (AggregateRootID 2) 
--> Field1 : String (Jane) 
--> Field2 : String (Doe) 

यदि मेरे पास एक लेनदेन है जो समेकित रूट्स दोनों अद्यतनों को अद्यतन करता है, तो क्या यह वैध है?

या इसका मतलब यह है कि यदि मेरे पास "नोड" कुल और "तत्व" कुल मिलाकर मैं एक लेनदेन में दोनों को अपडेट नहीं कर सकता?

उत्तर

6

मुझे लगता है कि एक एआर स्थिरता सीमालेनदेन सीमा से अधिक हो सकता है।

तथ्य यह है कि एक लेनदेन एआर सीमा के चारों ओर अच्छी तरह फिट होने के लिए होता है, यह सिर्फ संयोग है।

चूंकि लेन-देन एक आवेदन परत चिंता से अधिक हैं, यदि आप एक लेनदेन में एक से अधिक एआर के साथ समाप्त होते हैं तो यह आवश्यक रूप से एक डिजाइन समस्या इंगित नहीं करता है।

असल में, मैं कहूंगा कि कुछ 100% स्थिरता आवश्यकता परिदृश्यों में आपके पास एक विकल्प भी नहीं हो सकता है लेकिन एक लेनदेन में सभी परिवर्तन शामिल करने के लिए।

+0

यह आंशिक रूप से गलत है, एआर स्थिरता सीमाएं हैं, लेकिन एआर भी लेनदेन सीमाएं हैं। प्रति लेनदेन में एक से अधिक कुल संशोधित करने की अनुमति देकर आप उस बिंदु तक झूठी समवर्ती अपवादों का जोखिम बढ़ाएंगे जहां सिस्टम अनुपयोगी हो सकता है। हालांकि प्रति लेनदेन एकाधिक एआर बनाया जा सकता है। – plalx

+0

तो क्या आप कह रहे हैं कि यह भी आंशिक रूप से सही है? :) किसी को परिदृश्य में अक्सर भाग नहीं लेना चाहिए और यह एक डिजाइन समस्या को बहुत अच्छी तरह से इंगित कर सकता है और इसके आसपास विभिन्न तरीके हो सकते हैं। दो खातों के बीच धन हस्तांतरण ले लो। यदि कोई खाता एआर है तो आप शायद 100% लगातार दोनों चाहते हैं। हालांकि, असली दुनिया में दोनों खातों पर शायद ही कभी नियंत्रण होता है इसलिए अंतिम स्थिरता पर्याप्त होनी चाहिए। वैसे भी, मैं सहमत हूं कि यदि संभव हो तो किसी को इन परिदृश्यों से बचने की कोशिश करनी चाहिए। –

0

कहें कि आप एसिंक मॉडल में सीक्यूआरएस के साथ काम करना चाहते हैं तो संभव है कि आपकी कुल सीमाएं उस लेनदेन के भीतर एकमात्र कुल परिवर्तित हो जाएंगी। यदि आप सिंक मॉडल में सीक्यूआरएस का उपयोग कर रहे हैं या यहां तक ​​कि यदि आप आरपीसी एन-टियर विकास शैली कर रहे हैं, तो यह पूरी तरह विपरीत है, जहां क्लाइंट कॉल में आपके डेटा मॉडल के खिलाफ कुछ अच्छे बदलाव किए जाते हैं। इस अंतिम मामले परिदृश्य में, आपके पास निश्चित लेनदेन के भीतर निश्चित रूप से योग के कई उदाहरण होंगे (यानी लेनदेन के दायरे के साथ काम की इकाई)।

मुझे नहीं लगता कि आपके सिस्टम के आर्किटेक्चर के बारे में और जानने के बिना आपके प्रश्न का सही या गलत जवाब है। डीडीडी अपने सिस्टम पर व्यापक लेनदेन के लिए नियम निर्धारित नहीं कर सकता है। मैं निश्चित रूप से क्या कह सकता हूं, यदि आप एसिंक का उपयोग कर रहे हैं, तो सीकर्स के साथ इवेंट आधारित सिस्टम और प्रति लेनदेन में एक से अधिक कुल परिवर्तन होने वाला होता है, और यह मेरी राय है, ऐसा लगता है कि कुछ ऐसा नहीं लगता है सही।

संबंधित मुद्दे