मैं पढ़ने के मॉडल बनाने के लिए डोमेन ईवेंट का उपयोग कर सिस्टम में प्रवाह के बारे में थोड़ा उलझन में हूं। विशेष रूप से, हम इस तथ्य से कैसे निपट सकते हैं कि उपयोगकर्ता कमांड पूरा करते समय डेटा (और इसके दृश्य) को बदलने की अपेक्षा करता है, लेकिन हमारे सिस्टम आर्किटेक्चर (घटनाओं को प्रकाशित करने के लिए गैर-अवरुद्ध कॉल) के कारण वास्तविक डेटाबेस पहले नहीं बदल सकता है पेज पुनः लोड किया गया है?डोमेन घटनाक्रम और सेवा के साथ सीक्यूआरएस और डीडीडी का उपयोग करते समय दृश्य में परिवर्तन दिखा रहा है
मैं उम्मीद करता हूं कि हमारे सिस्टम में से किसी एक को सीक्यूआरएस के साथ घटनाओं और एक सेवा बस का उपयोग करके इनलाइन के डिजाइन को स्थानांतरित करने की उम्मीद है।
मान लीजिए कि मेरी प्रवाह जैसे चला जाता है:
उपयोगकर्ता दृश्य में बटन क्लिक करता है उनके खाते से भुगतान की विधि को दूर करने के कार्य करने के लिए।
नियंत्रक भुगतान MethodRemovalService को कॉल करता है, इसे खाता पास करता है आईडी & paymentMethodId।
नियंत्रक AccountRepository का उपयोग करता खाते को पुनः प्राप्त करने और account.RemovePaymentMethod (आईडी)
खाता मान्य करता है कि आपरेशन हो सकता है कॉल और प्रकाशित करता घटना PaymentMethodRemovedMessage (ACCOUNTID, paymentMethodId)
क्योंकि घटना प्रकाशन अतुल्यकालिक है, अब हमें सेवा से वापस जाना है और नियंत्रक से रिटर्न व्यू करना है - लेकिन हमारा वास्तविक डेटा अभी तक अपडेट नहीं किया गया है!
एक हैंडलर, IHandle < PaymentMethodRemovedMessage>, घटना सुनता है और डीबी
तो वास्तविक पंक्ति निकाल देता है, एक आदमी क्या करना है?
मैं बस भुगतान विधि को प्रदर्शित करने वाले div को हटा सकता हूं। यह एक AJAX परिदृश्य में काम कर सकता है, लेकिन अगर मैं पोस्ट-रीडायरेक्ट का उपयोग कर रहा हूं- गैर-जावास्क्रिप्ट क्लाइंट का समर्थन करने के लिए प्राप्त करें। तब मैं चीजों की क्वेरी पक्ष से डेटा प्राप्त कर रहा हूं और डेटा को पढ़ रहा हूं, संभावित रूप से अपडेट होने से पहले।
क्या मैं सिर्फ एक अधिसूचना दिखाता हूं कि भुगतान विधि को हटाने का उनका अनुरोध सबमिट कर दिया गया है? (जो दोस्ताना प्रतीत नहीं होता है, ऑर्डर सबमिट करने के लिए समझ में आता है, लेकिन कहने के लिए, एक पता बदलना नहीं)।
क्या डीकॉप्लेड एसिंक्रोनस घटनाओं के रूप में परिवर्तनों को लागू करने और उनके वर्तमान परिवर्तन को दर्शाते हुए उपयोगकर्ता डेटा दिखाने के लिए एक तरीका है?
संपादित करें: - यूआई तकरार एक अद्यतन के साथ बैंड से बाहर है कि दिखाने के लिए मेरा प्रश्न काफी CQRS, DDD synching reporting database मुझे कहना है के समान है, इस सवाल का जवाब यहाँ करने के लिए वहाँ और भी दिए गए संकेत है, यह करने के लिए एक गंध का एक सा है बोलने के लिए डीबी पढ़ें। मैं थोड़ा साफ करने की उम्मीद कर रहा था।