परियोजना का विवरण
अनुवादितइस दृष्टिकोण को चुनने का मुख्य कारण अर्थशास्त्र और स्केलेबिलिटी है। ट्रैफ़िक अप्रत्याशित और बर्स्टी है: घंटों तक शांत, फिर अचानक वृद्धि। हम चाहते हैं कि बैकएंड तब शून्य पर स्केल करे जब कोई इसका उपयोग नहीं कर रहा है, और हम केवल वास्तविक कॉल और उपभोग किए गए संसाधनों के लिए भुगतान करते हैं, और लोड के तहत स्वचालित रूप से बिना हमारी भागीदारी के स्केल आउट होता है। ठंडी शुरुआत को उचित सीमाओं के भीतर रखा जाना चाहिए: उचित मेमोरी आकार, हल्के निर्भरताएँ और केवल उन स्थानों पर प्रावधानित समवर्तीता जहां महत्वपूर्ण पथ वास्तव में इसकी आवश्यकता होती है। DynamoDB के लिए एक्सेस पैटर्न को पहले से डिज़ाइन करना महत्वपूर्ण है, बाद में जोड़ने के लिए नहीं—यह निर्णय प्रदर्शन और लागत के अधिकांश को निर्धारित करता है।
सब कुछ को कोड के रूप में अवसंरचना के रूप में पुन: उत्पन्न किया जाना चाहिए—Terraform या AWS SAM/CDK आपकी पसंद, लेकिन कंसोल में कोई मैनुअल क्लिक नहीं। हमें एक ही टेम्पलेट से अलग dev, staging और production वातावरण की आवश्यकता है, प्रत्येक फ़ंक्शन के लिए न्यूनतम अनुमतियों के साथ IAM भूमिकाएँ, संरचित लॉगिंग और ट्रेसिंग (CloudWatch, X-Ray), त्रुटियों और थ्रॉटलिंग के लिए अलार्म, और मर्ज पर डिप्लॉय के साथ एक CI/CD पाइपलाइन। कृपया शामिल करें:
— इनपुट मान्यता और स्पष्ट त्रुटि प्रतिक्रियाओं के साथ API गेटवे और Lambda हैंडलर;
— दस्तावेज़ीकृत एक्सेस पैटर्न के साथ DynamoDB डिज़ाइन (एकल या बहु-तालिका);
— बैकग्राउंड कार्यों, पुनः प्रयासों और मृत-पत्र कतारों के लिए EventBridge/SQS;
— पूर्ण IaC, वातावरण पृथक्करण और एक कार्यशील डिप्लॉय पाइपलाइन।