मैं एक शोध-परियोजना कर रहा हूँ जहाँ मैं एक घटना-चालित माइक्रो-सर्विस आर्किटेक्चर में परिवर्तनों को संभालने के लिए विकल्पों पर शोध कर रहा हूँ।
तो, मान लें कि हमें एक आवेदन मिला है जहां हमें चार अलग-अलग सेवाएं मिली हैं। इन सेवाओं में से प्रत्येक के पास स्थानीय डेटा संग्रहीत करने के लिए स्वयं का डेटाबेस है।
इस सेटअप में, चार सेवाएँ एक इवेंट बस का उपयोग करते हुए एक दूसरे के साथ संवाद करती हैं। इसलिए जब किसी सेवा में कुछ होता है, तो वह एक घटना प्रकाशित करता है। अन्य सभी सेवाएँ जो उस ईवेंट में रुचि रखते हैं, वे इसे अपने तरीके से संसाधित करेंगे।
उस स्थिति में वास्तुकला में विभिन्न सेवाओं को इन घटनाओं (विशेषताओं आदि) की सामग्री के बारे में "अनुबंध" करने की आवश्यकता होती है। इसलिए इन घटनाओं के लिए सेवाओं में "शिथिल युग्मित निर्भरता" होती है
मेरा सवाल है: हम इन घटनाओं में परिवर्तन कैसे संभाल सकते हैं?
तो, मान लीजिए कि सेवा A एप्लिकेशन में नए उपयोगकर्ताओं को पंजीकृत करता है। तो यह एक "" UserRegistered "ईवेंट भेजता है। सेवा B उस ईवेंट को चुनता है और इसे संसाधित करता है। लेकिन सेवा सी की टीम के कुछ डेवलपर ने फैसला किया कि उन्हें एक पंजीकृत उपयोगकर्ता के लिंग की भी आवश्यकता है। इसलिए घटना को बदल दिया जाता है और विशेषता लिंग। "UserRegistered" ईवेंट में जोड़ा जाता है।
हम यह कैसे सुनिश्चित कर सकते हैं कि सेवा बी अभी भी उस अतिरिक्त विशेषता के साथ उसी घटना को फिर से तैयार कर सकती है जिसमें बिना रीडेपॉल्लिंग के अतिरिक्त विशेषता हो?
और क्या इस समस्या का सामना करने के लिए इन घटनाओं के लिए अन्य तरीके हैं?