Architecture Decision Record

Active theme: Light

← निर्णय रिकॉर्ड के उदाहरण

आर्किटेक्चर निर्णय रिकॉर्ड: डेटाबेस तकनीक का चयन

अवस्था

स्वीकृत

संदर्भ

हम एक नया एप्लिकेशन डिज़ाइन कर रहे हैं जिसे डेटा को विस्तार योग्य और उच्च प्रदर्शन वाले ढंग से संग्रहीत और पुनर्प्राप्त करना है। हमने तीन प्रकार की डेटाबेस तकनीकें पहचानी हैं जो आमतौर पर उपयोग की जाती हैं: रिलेशनल डेटाबेस, डॉक्यूमेंट डेटाबेस और इवेंट डेटाबेस।

रिलेशनल डेटाबेस डेटा को निश्चित स्कीमा वाली तालिकाओं में संग्रहीत करते हैं और डेटा की अखंडता की कठोर बाधाएँ लागू करते हैं। वे उन एप्लिकेशन के लिए उपयुक्त हैं जिन्हें जटिल डेटा संबंधों और लेन-देन (transactions) की आवश्यकता होती है। उदाहरणों में MySQL, PostgreSQL और Oracle शामिल हैं।

डॉक्यूमेंट डेटाबेस डेटा को JSON जैसे दस्तावेज़ों में संग्रहीत करते हैं और स्कीमा-रहित होते हैं। वे उन एप्लिकेशन के लिए सुविधाजनक हैं जिन्हें लचीले डेटा मॉडल और क्षैतिज विस्तार की आवश्यकता होती है। उदाहरणों में MongoDB, Couchbase और Amazon DynamoDB शामिल हैं।

इवेंट डेटाबेस डेटा को घटनाओं की एक श्रृंखला के रूप में संग्रहीत करते हैं, जिसमें डेटा में हर परिवर्तन दर्ज होता है। वे उन एप्लिकेशन के लिए उपयुक्त हैं जिन्हें ऑडिटिंग, इवेंट सोर्सिंग और जटिल डेटा प्रोसेसिंग की आवश्यकता होती है। उदाहरणों में Apache Kafka, Apache Pulsar और AWS Kinesis शामिल हैं।

निर्णय

अपने एप्लिकेशन की आवश्यकताओं और बाधाओं का सावधानीपूर्वक मूल्यांकन करने के बाद, हमने डॉक्यूमेंट डेटाबेस का उपयोग करने का निर्णय लिया है।

तर्क

हमने डॉक्यूमेंट डेटाबेस इसलिए चुना क्योंकि:

  1. हमारे एप्लिकेशन को एक लचीला डेटा मॉडल चाहिए जो समय के साथ विकसित हो सके। डॉक्यूमेंट डेटाबेस हमें डेटा को स्कीमा-रहित प्रारूप में संग्रहीत करने देते हैं, जिसका अर्थ है कि हम डेटाबेस स्कीमा को बदले बिना नए फ़ील्ड जोड़ सकते हैं या मौजूदा दस्तावेज़ों की संरचना बदल सकते हैं।

  2. हमारे एप्लिकेशन को बड़ी मात्रा में डेटा और ट्रैफ़िक संभालने के लिए क्षैतिज रूप से विस्तार करना होगा। डॉक्यूमेंट डेटाबेस शार्डिंग और प्रतिकृति (replication) का अंतर्निहित समर्थन देते हैं, जिससे हम डेटा को कई सर्वरों में वितरित कर सकते हैं और उच्च पढ़ने-लिखने की क्षमता संभाल सकते हैं।

  3. हमारे एप्लिकेशन को तेज़ और कुशल डेटा पुनर्प्राप्ति चाहिए। डॉक्यूमेंट डेटाबेस शक्तिशाली इंडेक्सिंग और क्वेरी क्षमताएँ देते हैं जिनसे हम डेटा तेज़ी और कुशलता से पुनर्प्राप्त कर सकते हैं।

  4. हमारे एप्लिकेशन को जटिल लेन-देन या डेटा संबंधों की आवश्यकता नहीं है। जहाँ रिलेशनल डेटाबेस डेटा अखंडता की बाधाएँ लागू करने और जटिल लेन-देन संभालने में उत्कृष्ट हैं, वहीं हमारे एप्लिकेशन की ऐसी कोई आवश्यकता नहीं है। डॉक्यूमेंट डेटाबेस हमारे उपयोग के मामले के लिए पर्याप्त संगति और टिकाऊपन की गारंटी दे सकते हैं।

परिणाम

डॉक्यूमेंट डेटाबेस चुनने पर, हमें जिस विशिष्ट तकनीक का उपयोग करना चुनेंगे उसे सीखने और समझने में निवेश करना होगा। इसके अतिरिक्त, हमें सुनिश्चित करना होगा कि हमारे एप्लिकेशन का डेटा मॉडल डॉक्यूमेंट डेटाबेस के डेटा मॉडल के साथ अच्छी तरह मेल खाए ताकि प्रदर्शन और विस्तार क्षमता अधिकतम हो।

फिर भी, हमारा मानना है कि डॉक्यूमेंट डेटाबेस के उपयोग के लाभ उसकी लागत से अधिक हैं, और यह हमारे एप्लिकेशन की आवश्यकताओं और बाधाओं के लिए सबसे उपयुक्त है।