आधुनिक वित्तीय संस्थान हर दिन लाखों व्यापारों को संसाधित करते हैं, और इस मात्रा का समर्थन करने वाली बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बुनियादी बु Why Event-Driven Architecture for Trade Processing व्यापार प्रसंस्करण के लिए क्यों घटना-आधारित आर्किटेक्चर पारंपरिक अनुरोध-प्रेरित प्रणाली पूंजी बाजारों की देरी और पारस्परिक आवश्यकताओं को पूरा करने के लिए संघर्ष करती हैं. ऑर्डर प्रस्तुत करने से समायोजन की पुष्टि तक, एक एकल शेयर व्यापार ऑर्डर प्रबंधन प्रणालियों, जोखिम इंजन, एक्सचेंज गेटवे, क्लीलिंग हाउस, और अनुपालन चेक के माध्यम से गुजरता है। घटना-आधारित आर्किटेक्चर उत्पादकों और उपभोक्ताओं को पूरी तरह से अलग करके यह हल करता है. जब एक आदेश प्रस्तुत किया जाता है, तो सिस्टम एक घटना उत्सर्जन करता है. जोखिम सत्यापन, व्यापार से पहले अनुपालन की जांच, और स्थिति कैलकुलेटर जैसे निचले स्तर की सेवाएं प्रत्येक व्यक्तिगत रूप से और अपनी गति से उस घटना का उपभोग करती हैं. परिणाम एक प्रणाली है जो क्षैतिज रूप से स्केल करती है, विफलताओं को दयालु रूप से अलग करती है, और एक निरंतर निरीक्षण ट्रैक प्रदान करती है जो नियामक अधिक से अधिक उम्मीद करते हैं। Kafka as the Central Nervous System कैफका जैसे केंद्रीय तंत्रिका तंत्र Apache Kafka इस मॉडल में स्वाभाविक रूप से फिट होता है क्योंकि यह उच्च प्रवाह, टिकाऊ, ऑर्डर किए गए घटनाओं के स्ट्रीमिंग के लिए विशेष रूप से डिज़ाइन किया गया था। एक विशिष्ट व्यापार पाइपलाइन में, हम व्यापार जीवन चक्र के प्रत्येक चरण को अलग Kafka विषय के रूप में मॉड्यूल करते हैं: order.submitted, order.validated, order.routed, trade.executed, trade.confirmed और settlement.initiated। सबसे महत्वपूर्ण डिजाइन विकल्पों में से एक विभाजन रणनीति है। ट्रेडिंग सिस्टम के लिए, उपकरण पहचानकर्ता या खाता पहचानकर्ता द्वारा विभाजन यह सुनिश्चित करता है कि एक निश्चित सुरक्षा या क्लाइंट के लिए सभी घटनाएं एक ही उपभोक्ता उदाहरण के लिए आती हैं। यह स्थिति ट्रैकिंग के लिए बहुत महत्वपूर्ण है, जहां ऑफ़-ऑर्डर प्रोसेसिंग गलत नेट एक्सपोजर पैदा कर सकती है। Building for Resilience: Idempotency and Exactly-Once Semantics प्रतिरोध के लिए बिल्डिंग: Idempotency और Exactly-Once Semantics वितरित व्यापार प्रणालियों में सबसे कठिन समस्याओं में से एक यह सुनिश्चित करना है कि एक व्यापार सटीक रूप से एक बार संसाधित किया जाता है। नेटवर्क विभाजन, उपभोक्ता दुर्घटनाएं, और ब्रोकर नेता चुनाव सभी संदेशों को फिर से वितरित करने का कारण बन सकते हैं। कैफका की सटीक-एक बार सेमेन्टिक्स, लेन-देन निर्माता एपीआई के माध्यम से पेश की गई, संदेश परत पर इस बात को संबोधित करती है. idempotent निर्माताओं को सक्षम करके और लेन-देन में consume-transform-producer logic को शामिल करके, हम कई विभाजनों और विषयों पर पर परमाणु लेखन की गारंटी दे सकते हैं. अभ्यास में, इसका मतलब है कि एक इनपुट विषय, बिजनेस तर्क और लेखन से एक आउटपुट विषय को एक Kafka लेन-देन के भीतर शामिल करना. यदि इस का कोई हिस्सा असफल होता है, तो पूरे ऑपरेशन वापस रोल होता है और कोई आंशिक राज्य नीचे दिखता है. एप्लिकेशन परत पर, हम आदेश की शुरुआत में एक वैश्विक रूप से अद्वितीय व्यापार पहचानकर्ता को आवंटित करके और इसे पाइपलाइन भर में एक डिडुप्लिकेशन कुंजी के रूप में उपयोग करके idempotency को लागू करते हैं। प्रत्येक सेवा में हाल ही में संसाधित व्यापार आईडी के साथ एक स्थानीय कैश या त्वरित कुंजी-मूल्य स्टोर बनाए रखता है, और किसी भी डुप्लिकेट को व्यापार तर्क को निष्पादित करने से पहले छोड़ दिया जाता है। Schema Management and Contract Stability योजना प्रबंधन और अनुबंध स्थिरता एक बहु-टेम वातावरण में जहां विभिन्न समूह विभिन्न उपभोक्ताओं के मालिक होते हैं, योजना स्थिरता एक महत्वपूर्ण ऑपरेटिंग चिंता बन जाती है. यदि आदेश.submitted घटना योजना बिना सूचना के बदल जाती है, तो निचले प्रवाह उपभोक्ता टूट जाते हैं. हम Avro योजनाओं के साथ Confluent Schema रजिस्ट्री का उपयोग करके और आईसी / सीडी पाइपलाइन के हिस्से के रूप में पीछे और आगे संगतता जांच को लागू करते हैं. कोई योजना परिवर्तन लागू नहीं किया जा सकता है जब तक कि यह संगतता सत्यापन पास नहीं करता है, जो JSON आधारित प्रणों में आम हैं जो चुपचाप टूटने वाले परिवर्तनों को रोकता है. मूल्य, मात्रा और अवधारणात्मक मूल्य जैसे वित्तीय संवेदनशील क्षेत्रों के लिए, हम फ्लोटिंग अंक प्रकार के बजाय स्थिर अंक दशहरा प्रतिनिधित्व का उपयोग करते हैं. इससे हजारों व्यापारों में जमा होने वाले घूर्णन त्रुटियों को खत्म किया जाता है और यह सुनिश्चित किया जाता है कि पाइपलाइन में प्रत्येक उपभोक्ता के लिए एक ही संख्यात्मक मूल्य का मतलब है, प्रोग्रामिंग भाषा या runtime वातावरण के बावजूद। Operational Patterns: Dead Letter Queues and Circuit Breakers ऑपरेटिंग पैटर्न: मृत पत्र रैक और सर्किट ब्रेकर मजबूत अनुबंधों और लेन-देन सिमानिक्स के साथ भी, अप्रत्याशित संदेश आ जाएंगे. एक बाजार डेटा फ़ीड एक विकृत मूल्य पैदा कर सकता है. एक पार्टनर प्रणाली एक अनुरोधित क्षेत्र के साथ एक ट्रेडिंग पुष्टि भेज सकती है. इन अपवादों को संभालने के लिए एक संरचित तरीका के बिना, एक एकल बुरा संदेश घंटों के लिए पूरे विभाजन को अवरुद्ध कर सकता है जबकि उपभोक्ता बार-बार विफल रहता है और वापस लौटता है. हम एक मृत पत्र रेखा पैटर्न का उपयोग करते हैं जहां किसी भी संदेश को संसाधित करने योग्य संख्या में पुनरावृत्ति के बाद संसाधित नहीं किया जाता है एक समर्पित विषय, आमतौर पर एक .dlq प्लग के साथ नामित किया जाता है। एक चेतावनी प्रणाली DLQ लेग का निरीक्षण करती है और कॉल टीम को तुरंत सूचित करती है। प्रत्येक DLQ संदेश को मूल विषय, विभाजन, विपरीत स्टैक ट्रैक, और टाइमस्टैम्प के साथ समृद्ध किया जाता है, इससे पहले कि इसे प्रसारित किया जाता है, जो डिबगिंग को काफी तेजी से करता है। उपभोक्ताओं के भीतर बाहरी सेवा कॉल के लिए, जैसे कि एक मूल्य निर्धारण सेवा या संदर्भ डेटा एपीआई के लिए कॉल, हम एक पुस्तकालय का उपयोग करते हुए सर्किट ब्रेकर लागू करते हैं जैसे कि Resilience4j. यदि एक बाहरी सेवा विफल होने शुरू होती है, तो सर्किट ब्रेकर खुलता है और उपभोक्ता अस्थायी रूप से अवरुद्ध करने के बजाय एक कैश या डिफ़ॉल्ट मूल्य पर वापस गिरता है। Monitoring and Observability in Production उत्पादन में निगरानी और निगरानी Kafka-आधारित व्यापार पाइपलाइन के लिए प्राथमिक स्वास्थ्य मीटर Consumer group lag है, जो मापता है कि एक उपभोक्ता समूह प्रत्येक विभाजन के सिर से कितनी दूर पीछे है. हम सभी उपभोक्ता समूहों से देरी मीटर को एक केंद्रीय निगरानी प्रणाली में उजागर करते हैं और चेतावनी देते हैं जब देरी प्रत्येक सेवा की अपेक्षाकृत प्रसंस्करण दर के विपरीत कैलिब्रेट की सीमाओं को पार करती है. एक जोखिम इंजन जो आमतौर पर उप-दूसरे देरी को बनाए रखता है, अगर देरी पांच सेकंड से ऊपर बढ़ती है, तो चेतावनी शुरू कर देनी चाहिए, क्योंकि यह अंतर सीधे वास्तविक समय में जोखिम पदों की सटीकता को प्रभावित करता है. अंत से अंत तक ट्रेडिंग लंबी अवधि का ट्रैकिंग प्रत्येक घटना को एक रचना टाइमस्टैम्प के साथ स्टैम्प करके और प्रत्येक चरण में चले गए समय को मापकर किया जाता है। OpenTelemetry के साथ वितरित ट्रैकिंग हमें सेवाओं के माध्यम से एक एकल ट्रेडिंग की पूरी यात्रा को दर्शाने की अनुमति देता है, जो बोतल लंबी अवधि की पहचान करने के लिए मूल्यवान है। Looking Ahead आगे देखना Kafka पर बनाए गए घटना-आधारित आर्किटेक्चर वित्तीय व्यापार प्रसंस्करण के लिए एक मजबूत नींव होने के लिए साबित हुए हैं, लेकिन यहां वर्णित पैटर्न में ऑपरेटिंग अनुशासन, योजना प्रबंधन और अवलोकनशीलता उपकरणों में निवेश की आवश्यकता होती है ताकि व्यावहारिक रूप से अच्छी तरह से काम किया जा सके. जैसा कि वित्तीय कंपनियां वास्तविक समय निपटान मॉडल और तेजी से जटिल नियामक रिपोर्टिंग आवश्यकताओं की ओर बढ़ती हैं, घटना प्रवाहों को दोहराने, ऑडिट करने और चुनिंदा रूप से फिर से संसाधित करने की क्षमता और भी अधिक मूल्यवान हो जाती है. Kafka का टिकाऊ लॉग सिर्फ एक परिवहन परत नहीं है. यह एक बुनियादी रिकॉर्ड है कि पूरे संगठन