डेटाबेस बनाना बंद करें
(sqlsync.dev)डेटा प्रबंधन की जटिलता
- फ्रंटएंड इंजीनियरों को API डेटा को cache करने की ज़रूरत का एहसास होता है.
- शुरुआत में यह साधारण data storage से शुरू होता है, लेकिन जैसे-जैसे feature requests बढ़ती हैं, वे data cache, manual indexes, optimistic mutations, recursive cache invalidation आदि लागू करने लगते हैं.
- ये सुविधाएँ डेटाबेस के आंतरिक कामकाज जैसी होती हैं, और जटिल फ्रंटएंड applications में अंततः एक domain-specific database बन जाता है.
cache की बुनियाद
- शुरुआत API request के परिणामों को local variables में store करने से होती है.
- declarative framework का उपयोग करने वाले web applications में अनावश्यक API requests से बचने के लिए डेटा को variables में रखा जाता है.
- cache को higher layer पर ले जाना या UI tree के बाहर ले जाना अगला कदम होता है.
indexes के ज़रिए गति बढ़ाना
- डेटा को किसी खास तरीके से व्यवस्थित करके application का काम कम किया जा सकता है और user experience बेहतर बनाया जा सकता है.
- यह पता चलता है कि फ्रंटएंड data optimization, database storage के आंतरिक कामकाज जैसी है.
- ID के आधार पर डेटा store करना और तारीख़ के हिसाब से items को तेज़ी से query करने के लिए indexes बनाकर data structure को बेहतर किया जाता है.
optimistic mutations
- server response का इंतज़ार किए बिना local स्तर पर किसी खास operation के प्रभाव का simulation करना.
- इससे user interface तुरंत प्रतिक्रिया करता हुआ दिखता है, लेकिन अगर server से अलग परिणाम आता है तो UI को changes rollback करने पड़ते हैं.
- client और server के बीच logic को duplicate करना, asynchronous errors को handle करना, और application restart के बाद भी changes को reconcile करना जैसी चुनौतियाँ होती हैं.
recursive cache invalidation
- डेटा cache के कई हिस्सों में मौजूद होता है, और update के बाद server के साथ मेल बनाए रखने के लिए cache को सही तरीके से invalidate करना ज़रूरी होता है.
- UI को पता होना चाहिए कि cache के कौन-से हिस्से हर mutation से जुड़े हैं, और scale बढ़ने पर यह नाज़ुक हो सकता है.
- जब यह optimistic mutations के साथ जुड़ता है, तो client side पर server changes का अनुमान लगाने के लिए server logic को duplicate करना और भी मुश्किल हो जाता है.
क्या आप डेटाबेस बना रहे हैं?
- पर्याप्त जटिलता वाले फ्रंटएंड applications में अंततः कई data management features खुद बनाने पड़ते हैं, और इससे users को खुश करने तथा business problems हल करने में लगने वाला समय छिन जाता है.
- इसके विकल्प के रूप में एक frontend-optimized database stack पेश किया गया है.
SQLSync का परिचय
- SQLite पर आधारित frontend-optimized database stack, SQLSync विकसित किया गया है.
- SQLSync को data management समस्याएँ हल करने और developers को application की अनोखी features पर ध्यान केंद्रित करने में मदद करने के लिए डिज़ाइन किया गया है.
- SQLSync durable cache, SQLite की पूरी क्षमता, optimistic mutations, smart cache invalidation, और reactive queries प्रदान करता है.
GN⁺ की राय
इस लेख की सबसे महत्वपूर्ण बात यह है कि जैसे-जैसे फ्रंटएंड applications की जटिलता बढ़ती है, developers स्वयं डेटाबेस जैसी क्षमताएँ लागू करने लगते हैं. यह काम developers का समय लेता है और उन्हें उन features के निर्माण से दूर करता है जो वास्तव में users को value देते हैं. SQLSync जैसे frontend-optimized database stack इस समस्या को हल करने के लिए एक नवोन्मेषी दृष्टिकोण पेश करते हैं. यह लेख इसलिए दिलचस्प है क्योंकि यह मौजूदा data management तरीकों की बुनियादी समस्या को रेखांकित करता है और developers के लिए अधिक कुशलता से काम करने के नए समाधान तलाशता है.
1 टिप्पणियां
Hacker News राय
प्रोजेक्ट बनाने वाले दोस्त के प्रति समझ
पिछली कंपनी के project management software का अनुभव
SPA छोड़ देने पर गायब हो जाने वाली समस्याएं
SQLSync के निर्माता की राय
उपयोगकर्ताओं को वास्तविकता से अलग मानसिक मॉडल न दें
"जो मापा जा सकता है वही प्रबंधित होता है" सिद्धांत और sunk cost fallacy
client और server के बीच state synchronization की समस्या
ORM library के साथ तुलना
frontend और backend database का अंतर
SignalDB के जरिए समान प्रयास