मान लेते हैं कि हम एक वित्तीय अनुप्रयोग के लिए एक छोटा सुरक्षा सबसिस्टम लागू करना चाहते हैं जो एक अजीब पैटर्न का पता चलने पर उपयोगकर्ताओं को ईमेल के माध्यम से चेतावनी देता है। इस उदाहरण के लिए, पैटर्न तीन लेनदेन में शामिल होगा जैसा कि दर्शाया गया है। सुरक्षा उपतंत्र मुख्य प्रणाली से एक कतार से घटनाओं को पढ़ सकता है।
मैं जो प्राप्त करना चाहूंगा वह एक चेतावनी है जो सिस्टम में होने वाली घटनाओं का एक सीधा परिणाम है, बिना मध्यवर्ती प्रतिनिधित्व के जो पैटर्न की वर्तमान स्थिति को मॉडल करता है।
- निगरानी सक्रिय
- लेन-देन की प्रक्रिया
- लेन-देन की प्रक्रिया
- लेन-देन की प्रक्रिया
- अलर्ट ट्रिगर (आईडी: 123)
- भेजे गए अलर्ट के लिए ईमेल (आईडी के लिए: 123)
- लेन-देन की प्रक्रिया
इसे ध्यान में रखते हुए, मैंने सोचा कि इवेंट सोर्सिंग यहां बहुत अच्छी तरह से लागू हो सकती है, हालांकि मेरे पास एक स्पष्ट उत्तर के बिना एक प्रश्न है। उदाहरण में ट्रिगर किए गए अलर्ट का स्पष्ट दुष्प्रभाव होता है, ईमेल भेजने की आवश्यकता होती है, एक परिस्थिति जो केवल एक बार होनी चाहिए। इसलिए, यह तब नहीं होना चाहिए जब किसी कुल की सभी घटनाओं को दोहराया जाए।
कुछ हद तक, मैं उस ईमेल को देखता हूं जिसे क्वेरी पक्ष द्वारा उत्पन्न मटेरियल के समान भेजा जाना है जिसे मैंने CQRS / इवेंट सोर्सिंग साहित्य में कई बार देखा है, हालांकि इतना सूक्ष्म अंतर नहीं है।
इस साहित्य में, क्वेरी साइड ईवेंट हैंडलर से बनाई गई है जो किसी दिए गए बिंदु पर सभी घटनाओं को फिर से पढ़ने पर राज्य का एक भौतिककरण उत्पन्न कर सकता है। इस मामले में, हालांकि, उस तरह से पूरा नहीं किया जा सकता है, जो पहले बताए गए कारणों के लिए किया गया हो। यह विचार कि हर राज्य क्षणिक है, यहाँ इतनी अच्छी तरह से लागू नहीं होता है । हमें इस तथ्य को दर्ज करने की आवश्यकता है कि कहीं अलर्ट भेजा गया था।
मेरे लिए एक आसान समाधान एक अलग तालिका या संरचना होगी जहां आप उन अलर्ट का रिकॉर्ड रखते हैं जो पहले ट्रिगर थे। जैसा कि हमारे पास एक आईडी है, हम जांच कर पाएंगे कि क्या उसी आईडी के साथ अलर्ट पहले जारी किया गया था। इस जानकारी के बाद SendAlertCommand को बेरोजगार बना देगा। कई आदेश जारी किए जा सकते हैं, लेकिन दुष्प्रभाव केवल एक बार होगा।
यहां तक कि उस समाधान को ध्यान में रखते हुए, मुझे नहीं पता कि यह संकेत है कि इस समस्या के लिए इस वास्तुकला में कुछ गड़बड़ है।
- क्या मेरा दृष्टिकोण सही है?
- क्या कोई ऐसी जगह है जहाँ मुझे इस बारे में अधिक जानकारी मिल सकती है?
यह अजीब है कि मैं इस बारे में अधिक जानकारी नहीं पा सका हूं। शायद मैं गलत शब्द का इस्तेमाल कर रहा हूं।
आपको बहुत - बहुत धन्यवाद!