इवेंट-चालित आर्किटेक्चर
Workers और Deno का उपयोग करके ऐसे इवेंट-चालित सिस्टम बनाएँ जो रीयल-टाइम डेटा और उपयोगकर्ता कार्रवाइयों पर प्रतिक्रिया दें
इवेंट-चालित आर्किटेक्चर, CoddyKit पर Cloudflare Workers और Deno के साथ एज कंप्यूटिंग का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cloudflare Workers और Deno के साथ एज कंप्यूटिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
इवेंट-ड्रिवन आर्किटेक्चर क्या है
स्वागत है! आज हम Event-Driven Architecture (EDA) के बारे में जानेंगे। यह एक डिज़ाइन पैटर्न है जिसमें सेवाएँ सीधे कॉल करने के बजाय इवेंट उत्पन्न करके और उनका उपभोग करके संचार करती हैं।
इसे एक समाचार चैनल की तरह समझिए: निर्माता (रिपोर्टर) समाचार (इवेंट) प्रकाशित करते हैं और उपभोक्ता (दर्शक) अपनी रुचि के समाचार पर प्रतिक्रिया देते हैं।
- इवेंट: स्थिति में हुआ कोई महत्वपूर्ण बदलाव, जैसे 'उपयोगकर्ता ने पंजीकरण किया'।
- निर्माता: वह प्रणाली जो इवेंट उत्पन्न करके भेजती है।
- उपभोक्ता: वह प्रणाली जो इवेंट सुनती है और उस पर प्रतिक्रिया करती है।
एज पर इवेंट-ड्रिवन क्यों
EDA एज पर बहुत प्रभावी है और प्रदर्शन तथा विस्तार-क्षमता के लिए महत्वपूर्ण लाभ प्रदान करता है:
- पृथक्करण: सेवाएँ स्वतंत्र रूप से काम करती हैं, जिससे निर्भरताएँ कम होती हैं।
- विस्तार-क्षमता: इवेंट के भार के आधार पर अलग-अलग घटकों को बढ़ाया या घटाया जा सकता है।
- रियल-टाइम प्रतिक्रिया: उपयोगकर्ता की कार्रवाइयों या डेटा में बदलाव पर तुरंत प्रतिक्रिया दी जा सकती है।
- सुदृढ़ता: यदि कोई एक उपभोक्ता विफल हो जाए, तो अन्य इवेंट संसाधित करते रह सकते हैं।
इससे आपके एज अनुप्रयोग अधिक सुदृढ़ और लचीले बनते हैं।
इवेंट रिएक्टर के रूप में Cloudflare Workers
Cloudflare Workers इवेंट-ड्रिवन प्रणालियों के लिए बिल्कुल उपयुक्त हैं, क्योंकि वे स्वभावतः प्रतिक्रियाशील होते हैं। किसी इवेंट से सक्रिय होते ही वे तुरंत काम शुरू कर देते हैं!
Workers को सक्रिय करने वाले सामान्य इवेंट में शामिल हैं:
- आने वाले HTTP अनुरोध (जैसे, कोई API कॉल)
- किसी कतार से प्राप्त संदेश (जैसे, Cloudflare Queues)
- निर्धारित क्रॉन कार्य
- Cloudflare की अन्य सेवा बाइंडिंग
वे हल्के, वितरित उपभोक्ताओं के रूप में काम करते हैं।
कोड: HTTP इवेंट पर प्रतिक्रिया करने वाला Worker
यह एक बुनियादी Worker है जो आने वाले HTTP अनुरोध को एक 'इवेंट' के रूप में संसाधित करता है। यह इवेंट का प्रकार पहचानने के लिए एक कस्टम हेडर पढ़ता है और उसका लॉग दर्ज करता है।
इसे परखते समय X-Event-Type हेडर बदलकर देखें!
export default {
async fetch(request, env, ctx) {
const eventType = request.headers.get('X-Event-Type') || 'unknown_event';
const eventData = await request.json().catch(() => ({}));
console.log(`Worker received event: ${eventType}`);
console.log(`Event data: ${JSON.stringify(eventData)}`);
// In a real app, you'd process eventData here
return new Response(`Event '${eventType}' processed!`, { status: 200 });
},
};इवेंट उत्पन्न करने वाला Deno
जिस तरह Workers इवेंट का उपभोग करते हैं, उसी तरह Deno अनुप्रयोग इवेंट निर्माता के रूप में काम कर सकते हैं। कोई Deno बैकएंड सेवा या CLI उपकरण इवेंट उत्पन्न कर सकता है।
उदाहरण के लिए, कोई Deno स्क्रिप्ट यह कर सकती है:
- किसी फ़ाइल में बदलाव का पता लगाकर इवेंट भेजना।
- डेटा संसाधित करके 'data_processed' इवेंट प्रकाशित करना।
- उपयोगकर्ता की कार्रवाई संभालकर अपने एज Worker को 'user_activity' इवेंट भेजना।
कोड: Deno Worker को इवेंट भेजता है
यह Deno स्क्रिप्ट निर्माता के रूप में काम करती है और HTTP POST अनुरोध के माध्यम से हमारे Cloudflare Worker को 'user_registered' इवेंट भेजती है। इसके बाद Worker उपभोक्ता के रूप में काम करता है।
'YOUR_WORKER_URL' को अपने परिनियोजित Worker के URL से बदलना न भूलें!
// main.ts
async function sendUserRegisteredEvent() {
const workerUrl = "https://your-worker-name.your-account.workers.dev"; // Replace this!
const response = await fetch(workerUrl, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Event-Type": "user_registered"
},
body: JSON.stringify({ userId: "user_abc", timestamp: Date.now() })
});
if (response.ok) {
console.log("User registered event sent successfully!");
} else {
console.error("Failed to send event:", response.status, await response.text());
}
}
sendUserRegisteredEvent();सुदृढ़ इवेंट के लिए Cloudflare Queues
वास्तव में सुदृढ़ इवेंट-ड्रिवन प्रणालियों के लिए, विशेष रूप से एज पर, Cloudflare Queues अत्यंत उपयोगी हैं। वे इवेंट बस की तरह काम करती हैं और निर्माताओं तथा उपभोक्ताओं के बीच एक विश्वसनीय बफ़र प्रदान करती हैं।
- अतुल्यकालिक: निर्माताओं को उपभोक्ताओं के काम पूरा होने तक प्रतीक्षा नहीं करनी पड़ती।
- गारंटीकृत वितरण: संदेशों को संसाधित किए जाने तक स्थायी रूप से संग्रहीत किया जाता है।
- भार संतुलन: उपभोक्ताओं पर अत्यधिक भार डाले बिना इवेंट की अचानक बढ़ी संख्या को संभालता है।
- पृथक्करण: निर्माताओं और उपभोक्ताओं को एक-दूसरे के बारे में सीधे जानने की आवश्यकता नहीं होती।
कोड: Worker किसी कतार में प्रकाशित करता है
यहाँ एक Worker HTTP अनुरोध (एक इवेंट) प्राप्त करता है और फिर Cloudflare Queue में एक संदेश प्रकाशित करता है। इससे भारी प्रसंस्करण का भार एक अलग उपभोक्ता को सौंप दिया जाता है।
इसे चलाने योग्य बनाने के लिए, आपको अपनी wrangler.toml फ़ाइल में एक Queue को बाइंड करना होगा (उदाहरण के लिए, [[queues.producers]] binding = "MY_QUEUE" queue_name = "my-event-queue")।
export default {
async fetch(request, env, ctx) {
const eventData = await request.json().catch(() => ({}));
const eventType = eventData.type || 'api_trigger_event';
// Publish event to a Cloudflare Queue
// 'env.MY_QUEUE' refers to the queue binding configured
await env.MY_QUEUE.send({
eventType: eventType,
payload: eventData
});
return new Response(`Event '${eventType}' queued successfully!`, { status: 202 });
},
};कोड: Worker कतार के संदेशों का उपभोग करता है
यह Worker सीधे Cloudflare Queue से संदेशों का उपभोग करने के लिए कॉन्फ़िगर किया गया है। यह प्रत्येक संदेश को एक बैच में संसाधित करता है और इवेंट का प्रकार तथा पेलोड निकालता है।
इस Worker में fetch हैंडलर के बजाय (या उसके अतिरिक्त) एक queue हैंडलर होगा। आप इसे अपनी wrangler.toml फ़ाइल में कॉन्फ़िगर करेंगे (उदाहरण के लिए, [[queues.consumers]] queue = "my-event-queue")।
export default {
async queue(batch, env, ctx) {
for (const message of batch.messages) {
const { eventType, payload } = message.body;
console.log(`Processing event from queue: ${eventType}`);
console.log(`Payload: ${JSON.stringify(payload)}`);
// Implement your actual event processing logic here
// e.g., update a database, send a notification, call another API
}
},
};त्वरित जाँच: इवेंट-ड्रिवन अवधारणाएँ
निम्नलिखित में से कौन-से एज पर Event-Driven Architecture का उपयोग करने के प्रमुख लाभ हैं?
पुनरावलोकन: इवेंट-ड्रिवन एज ऐप्स
बहुत अच्छा! आपने Event-Driven Architectures और यह सीखा कि वे एज पर अनुप्रयोगों को कैसे अत्यधिक सक्षम बनाती हैं।
- EDA पृथक संचार के लिए इवेंट, निर्माताओं और उपभोक्ताओं का उपयोग करता है।
- Cloudflare Workers एज इवेंट का उपभोग और उत्पादन करने के लिए आदर्श हैं।
- Deno अनुप्रयोग शक्तिशाली इवेंट निर्माताओं के रूप में काम कर सकते हैं।
- Cloudflare Queues सुदृढ़ता और विस्तार-क्षमता के लिए विश्वसनीय, अतुल्यकालिक इवेंट वितरण प्रदान करती हैं।
अत्यधिक प्रतिक्रियाशील, विस्तार योग्य और त्रुटि-सहिष्णु एज अनुप्रयोग बनाने के लिए यह पैटर्न महत्वपूर्ण है। इवेंट आपकी आर्किटेक्चर को कैसे बदल सकते हैं, यह जानना जारी रखें!
एआई शिक्षक के साथ Cloudflare Workers और Deno के साथ एज कंप्यूटिंग सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 47
अक्सर पूछे जाने वाले प्रश्न
क्या “इवेंट-चालित आर्किटेक्चर” पाठ निःशुल्क है?
हाँ—“इवेंट-चालित आर्किटेक्चर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“इवेंट-चालित आर्किटेक्चर” में मैं क्या सीखूँगा?
Workers और Deno का उपयोग करके ऐसे इवेंट-चालित सिस्टम बनाएँ जो रीयल-टाइम डेटा और उपयोगकर्ता कार्रवाइयों पर प्रतिक्रिया दें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cloudflare Workers और Deno के साथ एज कंप्यूटिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Cloudflare Workers और Deno के साथ एज कंप्यूटिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cloudflare Workers और Deno के साथ एज कंप्यूटिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“इवेंट-चालित आर्किटेक्चर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Cloudflare Workers और Deno के साथ एज कंप्यूटिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- एज पर माइक्रोसर्विसेज़
- इवेंट-चालित आर्किटेक्चर
- जियोलोकेशन और स्थानीयकरण
- Durable Objects और अवस्था-संपन्न समन्वय