2011-06-08 12 views
7

मैं डीडीडी में नया हूं और अब मैं अधिक जानकारी प्राप्त करने के लिए लेख पढ़ रहा हूं। articles में से एक डोमेन इवेंट (डीई) पर केंद्रित है। उदाहरण के लिए कोड भेजने के दौरान कुछ मापदंडों को पूरा करने के बाद ईमेल भेजने के लिए एक डोमेन ईवेंट भेजा जाता है।डोमेन संचालित डिज़ाइन और डोमेन इवेंट

कोड उदाहरण डोमेन घटनाओं से निपटने का एक तरीका पता चलता है और इस अनुच्छेद द्वारा पीछा किया जाता

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

मेरे सवालों का

  1. हैं इस डे को संभालने में एक सामान्य समस्या है? या यह सिर्फ लेख में समाधान की चिंता है?
  2. यदि लेनदेन में डोमेन ईवेंट उठाए जाते हैं और सिस्टम उन्हें सिंक्रनाइज़ नहीं करेगा, तो उन्हें कैसे संभाला जाना चाहिए?
  3. जब मैं इन घटनाओं को क्रमबद्ध करने का निर्णय लेता हूं और शेड्यूलर (या कोई अन्य तंत्र) उन्हें निष्पादित करने देता हूं, तो क्या होता है जब लेनदेन वापस लुढ़का जाता है? (लेख घटना में लेनदेन में निष्पादित कोड में उठाया गया है) जो उन्हें रद्द कर देगा (जब वे डेटाबेस तक नहीं बने होते हैं)?

धन्यवाद

उत्तर

8

यह किसी भी प्रणाली है जो (क performant ढंग से प्रतिक्रिया देना आवश्यक है में, कोई बात नहीं DDD

सामान्य तौर पर एक सामान्य समस्या अवधि है जैसे वेब सर्वर, किसी भी लंबी चलने वाली गतिविधियों होना चाहिए ट्रिगर प्रक्रिया को अतुल्यकालिक रूप से संभाला।

इसका मतलब यह है कतार।

वापस अपने लेन-देन रोलिंग कतार से आइटम निकाल देना चाहिए।

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

संक्षेप में, आपकी कतार प्रणाली स्वयं लेनदेन होनी चाहिए और पुनः प्रयास करने की अनुमति देनी चाहिए और आपको वर्कफ़्लो के रूप में घटनाओं की पूरी श्रृंखला के बारे में सोचना होगा।