मैं इस समय एक नए गेम प्रोजेक्ट पर काम कर रहा हूं जिसमें एक रिएक्टिव नेटिव फ्रंट-एंड और एक लैम्ब्डा-आधारित बैक-एंड शामिल होगा। एप्लिकेशन को कुछ वास्तविक समय की विशेषताओं की आवश्यकता होती है जैसे कि सक्रिय उपयोगकर्ता रिकॉर्ड, जियोफेंसिंग, आदि।
मैं Firebase के रीयलटाइम डेटाबेस को देख रहा था जो वास्तविक समय के डेटा सिंक के लिए एक बहुत ही सुंदर समाधान की तरह दिखता है लेकिन मुझे नहीं लगता कि AWS के पास ऐसा कुछ है।
3 विकल्प जो मैं "सर्वर रहित" के लिए सोच सकता था, केवल AWS सेवाओं का उपयोग कर रहे हैं:
विकल्प 1: AWS IoT वेबसॉकेट्स पर मैसेज करना
यह काफी स्पष्ट है, IoT एसडीके के माध्यम से एक प्रबंधित वेबसॉकेट कनेक्शन। मैं इनबाउंड और आउटबाउंड घटनाओं के जवाब में लैम्ब्डा को ट्रिगर करने के बारे में सोच रहा था और बस वेबस्टॉक को रियलटाइम लेयर के रूप में उपयोग करता हूं, ऐप क्लाइंट पर कस्टम हैंडलिंग लॉजिक का निर्माण करता हूं जैसा कि आप आमतौर पर करते हैं।
इसके विपरीत, कम से कम फायरबेस की तुलना में, यह है कि मुझे स्वयं घटनाओं में डेटा को संभालना होगा, जो वेबस्केट्स के शीर्ष पर प्रबंधन की एक और परत जोड़ देगा और एप्लिकेशन के स्टोर में एपीआई डेटा परत के साथ मानकीकृत करना होगा। ।
पेशेवरों:
- स्केलेबल द्वि-दिशात्मक रीयलटाइम कनेक्शन
विपक्ष:
- ऐप ओपन होने पर ही काम करता है
- संदेश संरचना को लागू करने की आवश्यकता है
- एकाधिक परिवहन परतों का प्रबंधन किया जाना है
विकल्प 2: पुश-ट्रिगर फिर से लाना
एक अन्य विकल्प वास्तविक समय ट्रिगर के रूप में पुश नोटिफिकेशन का उपयोग करना है लेकिन वास्तव में अद्यतन पेलोड प्राप्त करने के लिए एपीआई गेटवे के लिए नियमित HTTP अनुरोध का उपयोग करें।
मुझे यह दृष्टिकोण पसंद है क्योंकि यह केवल एक ट्रांसपोर्ट लेयर और एप्लीकेशन स्टेट के लिए सत्य का एक ही स्रोत है। जब ये पुश नोटिफिकेशन होंगे, तब यह अपडेट को ट्रिगर भी करेगा।
नकारात्मक पक्ष यह है कि यह डेटा को धक्का सूचनाओं के बीच संभावित रूप से कठिन मैपिंग के साथ बहुत सारे कस्टम काम है जिन्हें लाने की आवश्यकता है।
पेशेवरों:
- ऐप बंद होने पर भी पुश नोटिफिकेशन काम करता है
- सत्य का एकल स्रोत, परिवहन परत
विपक्ष:
- सबसे कस्टम समाधान
- कुल मिलाकर कई और HTTP अनुरोध शामिल होंगे
विकल्प 3: कॉग्नीटो सिंक यह मेरे लिए नया है और मुझे यकीन नहीं है कि यह वास्तव में सर्वर से हस्तक्षेप किया जा सकता है।
Cognito Sync उपयोगकर्ता को राज्य सिंक प्रदान करता है। ऑफ़लाइन समर्थन के साथ पूर्ण डिवाइस भर में और Cognito SDK का एक हिस्सा है जिसे मैं वैसे भी इस्तेमाल कर रहा हूँ। ऐसा लगता है कि मैं जो कुछ भी देख रहा हूं, लेकिन कोई भी निर्णायक सबूत नहीं मिल सका है जैसे कि इसे संशोधित करना, या "ट्रिगर" करना संभव है, एडब्ल्यूएस से अपडेट और न केवल उपकरणों में से एक से।
पेशेवरों:
- एक अमूर्त वास्तविक समय डेटा मॉडल प्रदान करता है
- Cognito उपयोगकर्ता से जुड़ा ओओटीबी रिकॉर्ड करता है
विपक्ष:
- यह सुनिश्चित नहीं है कि लंबोदर से संशोधित या अद्यतन किया जा सकता है
मुझे आश्चर्य है कि अगर किसी के पास AWS पर लैंबडा-आधारित आर्किटेक्चर के हिस्से के रूप में वास्तविक समय में काम करने का अनुभव है और अगर आपके पास इस पर एक राय है कि आगे बढ़ने का सबसे अच्छा तरीका क्या है?