ऑर्केस्ट्रेशन के लिए स्टेट मशीन
लेन-देन की प्रगति पर नज़र रखने वाले सुदृढ़ और पूर्वानुमेय Saga ऑर्केस्ट्रेटर बनाने के लिए स्टेट मशीन की अवधारणाएँ लागू कीजिए।
ऑर्केस्ट्रेशन के लिए स्टेट मशीन, CoddyKit पर माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
सागा के लिए स्थिति मशीनें
मज़बूत सागा ऑर्केस्ट्रेटर बनाने के लिए स्थिति मशीनों के उपयोग पर इस पाठ में आपका स्वागत है!
ऑर्केस्ट्रेशन सागा पूरी प्रक्रिया पर नज़र रखकर जटिल वितरित लेन-देन का प्रबंधन करते हैं। स्थिति मशीनें इसके लिए एक शक्तिशाली साधन हैं।
स्थिति मशीनों का उपयोग क्यों करें?
सागा ऑर्केस्ट्रेटर को किसी भी समय व्यावसायिक प्रक्रिया की सटीक स्थिति पता होनी चाहिए। इससे वह:
- तय कर सकता है कि अगली कार्रवाई क्या करनी है।
- विफलताओं को संभालकर प्रतिपूर्ति शुरू कर सकता है।
- कई सेवाओं के बीच सुसंगतता सुनिश्चित कर सकता है।
स्थिति मशीनें इस जटिल तर्क का मॉडल बनाने का एक स्पष्ट और व्यवस्थित तरीका प्रदान करती हैं।
स्थिति मशीन की मूल बातें
मूल रूप से, एक स्थिति मशीन तीन मुख्य अवधारणाओं से बनी होती है:
- स्थितियाँ: सागा के अलग-अलग चरणों या स्थितियों को दर्शाती हैं (जैसे,
OrderCreated,PaymentPending)। - इवेंट: ऐसी घटनाएँ जो सागा में बदलाव शुरू करती हैं (जैसे,
PaymentSuccessful,ShipmentFailed)। - संक्रमण: वे नियम जो तय करते हैं कि कोई इवेंट सागा को एक स्थिति से दूसरी स्थिति में कैसे ले जाता है।
उदाहरण: ऑर्डर संसाधित करने का सागा
आइए एक सामान्य परिस्थिति पर विचार करते हैं: ऑनलाइन ऑर्डर संसाधित करने वाला सागा।
इस सागा में कई सेवाएँ शामिल हो सकती हैं:
- ऑर्डर सेवा
- भुगतान सेवा
- शिपिंग सेवा
ऑर्केस्ट्रेटर को इन चरणों का समन्वय करना होता है।
सागा की स्थितियाँ परिभाषित करना
अपने ऑर्डर संसाधित करने वाले सागा के लिए हम इस तरह की स्थितियाँ परिभाषित कर सकते हैं:
ORDER_CREATED: प्रारंभिक स्थिति।PAYMENT_PENDING: भुगतान की पुष्टि की प्रतीक्षा।PAID: भुगतान सफल।SHIPPING_PENDING: शिपमेंट शुरू होने की प्रतीक्षा।SHIPPED: वस्तु भेज दी गई है।CANCELLED: ऑर्डर रद्द किया गया (विफलता या उपयोगकर्ता की कार्रवाई के कारण)।
सागा के इवेंट परिभाषित करना
और इनमें से इवेंट हो सकते हैं:
ORDER_PLACED: ग्राहक ऑर्डर देता है।PAYMENT_SUCCESS: भुगतान सेवा भुगतान की पुष्टि करती है।PAYMENT_FAILED: भुगतान सेवा विफलता की सूचना देती है।SHIPMENT_SUCCESS: शिपिंग सेवा शिपमेंट की पुष्टि करती है।SHIPMENT_FAILED: शिपिंग सेवा किसी समस्या की सूचना देती है।ORDER_CANCELLED_REQUEST: उपयोगकर्ता रद्द करने का अनुरोध करता है।
स्थिति संक्रमण का तर्क
स्थिति मशीन का मूल उसका संक्रमण तर्क है: वर्तमान स्थिति + इवेंट = नई स्थिति (और संभवतः एक कार्रवाई)।
उदाहरण के लिए:
- यदि स्थिति
ORDER_CREATEDहै औरORDER_PLACEDइवेंट होता है, तोPAYMENT_PENDINGमें संक्रमण करें। - यदि स्थिति
PAYMENT_PENDINGहै औरPAYMENT_SUCCESSइवेंट होता है, तोPAIDमें संक्रमण करें।
इससे आपके सागा का अनुमानित प्रवाह निर्धारित होता है।
कोड: सरल स्थिति संक्रमण
यहाँ एक सरल Java उदाहरण दिया गया है, जो दिखाता है कि स्थितियाँ और इवेंट ऑर्केस्ट्रेटर में संक्रमण कैसे संचालित कर सकते हैं।
स्थिति में होने वाले बदलाव देखने के लिए इसे चलाकर देखें!
public class SimpleSagaState {
public enum SagaStepState {
STARTED,
PROCESSING_PAYMENT,
PAYMENT_COMPLETE,
FAILED
}
private SagaStepState currentState;
public SimpleSagaState() {
this.currentState = SagaStepState.STARTED;
}
public SagaStepState getCurrentState() {
return currentState;
}
public void processEvent(String event) {
System.out.println("Event: " + event);
switch (currentState) {
case STARTED:
if ("OrderCreated".equals(event)) {
currentState = SagaStepState.PROCESSING_PAYMENT;
}
break;
case PROCESSING_PAYMENT:
if ("PaymentSuccess".equals(event)) {
currentState = SagaStepState.PAYMENT_COMPLETE;
} else if ("PaymentFailed".equals(event)) {
currentState = SagaStepState.FAILED;
}
break;
case PAYMENT_COMPLETE:
// After payment, might go to shipping, etc.
break;
case FAILED:
System.out.println("Saga already failed.");
break;
}
System.out.println("New State: " + currentState);
}
public static void main(String[] args) {
SimpleSagaState saga = new SimpleSagaState();
System.out.println("Initial State: " + saga.getCurrentState());
saga.processEvent("OrderCreated");
saga.processEvent("PaymentSuccess");
saga.processEvent("ShipmentInitiated"); // This event won't change state in this simplified example
System.out.println("Final State: " + saga.getCurrentState());
}
}स्थितियों के साथ प्रतिपूर्ति
सागा के लिए स्थिति मशीनों का उपयोग करने का एक सबसे बड़ा लाभ यह है कि वे प्रतिपूर्ति तर्क को सरल बना देती हैं।
यदि कोई सेवा विफल होती है, तो ऑर्केस्ट्रेटर को 'विफल' इवेंट प्राप्त होता है। वर्तमान स्थिति के आधार पर, स्थिति मशीन यह निर्धारित कर सकती है कि पहले सफलतापूर्वक पूरे किए गए चरणों को उलटने के लिए कौन-सी प्रतिपूर्ति कार्रवाइयाँ शुरू करनी हैं।
उदाहरण के लिए, यदि स्थिति PAID है और SHIPMENT_FAILED होता है, तो स्थिति मशीन CANCELLED में संक्रमण कर सकती है और धनवापसी शुरू कर सकती है।
स्थिति संक्रमण संबंधी प्रश्न
स्थिति मशीन का उपयोग करने वाले ऑर्डर सागा पर विचार कीजिए। ऑर्डर इस समय PAYMENT_PENDING स्थिति में है।
यदि ऑर्केस्ट्रेटर को PAYMENT_FAILED इवेंट प्राप्त होता है, तो सागा की सबसे उपयुक्त अगली स्थिति क्या होगी, जो आम तौर पर प्रतिपूर्ति का संकेत देती है?
पुनरावलोकन: ऑर्केस्ट्रेशन के लिए स्थितियाँ
इस पाठ में हमने जाना कि मज़बूत सागा ऑर्केस्ट्रेटर बनाने के लिए स्थिति मशीनें कितनी महत्वपूर्ण हैं।
- वे सागा की प्रगति पर नज़र रखने के लिए एक स्पष्ट मॉडल प्रदान करती हैं।
- स्थितियाँ, इवेंट और संक्रमण सागा के प्रवाह को परिभाषित करते हैं।
- वे जटिल तर्क को संभालना सरल बनाती हैं, विशेष रूप से प्रतिपूर्ति के मामले में।
स्थितियों और संक्रमणों को स्पष्ट रूप से परिभाषित करके आप अनुमानित और लचीले वितरित लेन-देन तैयार करते हैं।
एआई शिक्षक के साथ माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “ऑर्केस्ट्रेशन के लिए स्टेट मशीन” पाठ निःशुल्क है?
हाँ—“ऑर्केस्ट्रेशन के लिए स्टेट मशीन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“ऑर्केस्ट्रेशन के लिए स्टेट मशीन” में मैं क्या सीखूँगा?
लेन-देन की प्रगति पर नज़र रखने वाले सुदृढ़ और पूर्वानुमेय Saga ऑर्केस्ट्रेटर बनाने के लिए स्टेट मशीन की अवधारणाएँ लागू कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“ऑर्केस्ट्रेशन के लिए स्टेट मशीन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर माइक्रोसर्विस संचार पैटर्न (Saga, Circuit Breaker) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Saga ऑर्केस्ट्रेटर का अभिकल्पन
- ऑर्केस्ट्रेशन के लिए स्टेट मशीन
- वर्कफ़्लो इंजन के साथ कार्यान्वयन
- Orchestration-आधारित Sagas का परीक्षण