আর্কিটেকচার সিদ্ধান্ত রেকর্ড: ডেটাবেস প্রযুক্তি বেছে নেওয়া
অবস্থা
গৃহীত
প্রেক্ষাপট
আমরা একটি নতুন অ্যাপ্লিকেশন নকশা করছি, যাতে সম্প্রসারণযোগ্য ও কর্মক্ষম উপায়ে ডেটা সংরক্ষণ ও পুনরুদ্ধার করা প্রয়োজন। আমরা সাধারণত ব্যবহৃত তিন ধরনের ডেটাবেস প্রযুক্তি শনাক্ত করেছি: রিলেশনাল ডেটাবেস, ডকুমেন্ট ডেটাবেস এবং ইভেন্ট ডেটাবেস।
রিলেশনাল ডেটাবেস স্থির স্কিমাসহ টেবিলে ডেটা সংরক্ষণ করে এবং কঠোর ডেটা অখণ্ডতার সীমাবদ্ধতা প্রয়োগ করে। জটিল ডেটা সম্পর্ক ও লেনদেন প্রয়োজন এমন অ্যাপ্লিকেশনের জন্য এগুলো উপযুক্ত। উদাহরণ: MySQL, PostgreSQL ও Oracle।
ডকুমেন্ট ডেটাবেস JSON-সদৃশ ডকুমেন্টে ডেটা সংরক্ষণ করে এবং স্কিমাহীন। নমনীয় ডেটা মডেল ও অনুভূমিক সম্প্রসারণ প্রয়োজন এমন অ্যাপ্লিকেশনের জন্য এগুলো ভালোভাবে উপযুক্ত। উদাহরণ: MongoDB, Couchbase ও Amazon DynamoDB।
ইভেন্ট ডেটাবেস ডেটাকে ইভেন্টের ধারা হিসেবে সংরক্ষণ করে এবং ডেটার প্রতিটি পরিবর্তন ধারণ করে। নিরীক্ষা, ইভেন্ট সোর্সিং এবং জটিল ডেটা প্রক্রিয়াকরণ প্রয়োজন এমন অ্যাপ্লিকেশনের জন্য এগুলো উপযুক্ত। উদাহরণ: Apache Kafka, Apache Pulsar ও AWS Kinesis।
সিদ্ধান্ত
আমাদের অ্যাপ্লিকেশনের প্রয়োজনীয়তা ও সীমাবদ্ধতা সতর্কভাবে মূল্যায়ন করার পর আমরা একটি ডকুমেন্ট ডেটাবেস ব্যবহারের সিদ্ধান্ত নিয়েছি।
যুক্তি
আমরা একটি ডকুমেন্ট ডেটাবেস বেছে নিয়েছি, কারণ:
আমাদের অ্যাপ্লিকেশনের একটি নমনীয় ডেটা মডেল প্রয়োজন, যা সময়ের সঙ্গে বিকশিত হতে পারে। ডকুমেন্ট ডেটাবেস আমাদের স্কিমাহীন বিন্যাসে ডেটা সংরক্ষণ করতে দেয়, অর্থাৎ ডেটাবেস স্কিমা পরিবর্তন না করেই আমরা নতুন ক্ষেত্র যোগ করতে বা বিদ্যমান ডকুমেন্টের কাঠামো বদলাতে পারি।
আমাদের অ্যাপ্লিকেশনকে বিপুল পরিমাণ ডেটা ও ট্রাফিক সামলাতে অনুভূমিকভাবে সম্প্রসারিত হতে হবে। ডকুমেন্ট ডেটাবেস শার্ডিং ও রেপ্লিকেশনের জন্য অন্তর্নির্মিত সমর্থন দেয়, যা আমাদের একাধিক সার্ভারে ডেটা বিতরণ করতে এবং উচ্চ পঠন ও লিখন থ্রুপুট সামলাতে সক্ষম করে।
আমাদের অ্যাপ্লিকেশনের দ্রুত ও দক্ষ ডেটা পুনরুদ্ধার প্রয়োজন। ডকুমেন্ট ডেটাবেস শক্তিশালী ইনডেক্সিং ও কোয়েরি সক্ষমতা দেয়, যা আমাদের দ্রুত ও দক্ষভাবে ডেটা পুনরুদ্ধার করতে সক্ষম করে।
আমাদের অ্যাপ্লিকেশনে জটিল লেনদেন বা ডেটা সম্পর্ক প্রয়োজন নেই। রিলেশনাল ডেটাবেস ডেটা অখণ্ডতার সীমাবদ্ধতা প্রয়োগ এবং জটিল লেনদেন সামলাতে দক্ষ হলেও আমাদের অ্যাপ্লিকেশনের এমন কোনো প্রয়োজনীয়তা নেই। আমাদের ব্যবহারের ক্ষেত্রে ডকুমেন্ট ডেটাবেস যথেষ্ট সংগতি ও স্থায়িত্বের নিশ্চয়তা দিতে পারে।
পরিণতি
ডকুমেন্ট ডেটাবেস বেছে নেওয়ায় আমরা যে নির্দিষ্ট প্রযুক্তি ব্যবহার করব, তা শিখতে ও বুঝতে আমাদের বিনিয়োগ করতে হবে। এ ছাড়া কর্মক্ষমতা ও সম্প্রসারণযোগ্যতা সর্বোচ্চ করতে আমাদের নিশ্চিত করতে হবে যে অ্যাপ্লিকেশনের ডেটা মডেল ডকুমেন্ট ডেটাবেসের ডেটা মডেলের সঙ্গে ভালোভাবে মানায়।
তবে আমরা বিশ্বাস করি, ডকুমেন্ট ডেটাবেস ব্যবহারের সুবিধা খরচের চেয়ে বেশি, এবং এটি আমাদের অ্যাপ্লিকেশনের প্রয়োজনীয়তা ও সীমাবদ্ধতার সবচেয়ে উপযুক্ত।