আমি বর্তমানে নিম্নরূপ একটি সংস্থার সাথে একটি প্রকল্পে কাজ করছি:
- ক্লায়েন্ট - প্রধান সার্ভার থেকে REST এপিআইয়ের মাধ্যমে ডেটা পান।
- সার্ভার - তৃতীয় পক্ষের APIs এর মাধ্যমে অন্যান্য অন্যান্য সার্ভারের ডেটা অনুরোধ করে
- তৃতীয় পক্ষের APIs - সার্ভারে ডেটা সরবরাহ করে এমন পরিষেবাগুলি আমার নিয়ন্ত্রণের বাইরে (রেডডিট, হ্যাকারনিউজ, কোওড়া, ইত্যাদি)
তর্কের খাতিরে, আসুন ক্লায়েন্টটির প্রথমে তৃতীয় পক্ষের প্রতিটি API থেকে আইটেমের তালিকা প্রয়োজন needs এই তালিকা থেকে, একটি আইটেম চয়ন করা হবে যার পয়েন্টে ক্লায়েন্টকে আইটেমটির সম্পূর্ণ সামগ্রীর পাশাপাশি আইটেমের প্রতিক্রিয়াগুলি (যেমন মন্তব্যগুলি) দেখতে হবে। আমি তিনটি বিকল্পের মধ্যে সিদ্ধান্ত নেওয়ার চেষ্টা করছি:
খাদ্যতালিকা অনুযায়ী
এই পদ্ধতির সাথে আমার সার্ভারে আমার কাছে পৃথক 3 টি সমাপ্তি রয়েছে: একটির আইটেমের তালিকা পেতে একটি, কোনও আইটেমের জন্য মূল বিষয়বস্তু পেতে এবং একটিতে আইটেমের প্রতিক্রিয়া পেতে।
- পেশাদাররা: আমি কখনই আমার প্রয়োজনের চেয়ে বেশি অনুরোধ করি না, অনুরোধগুলি ছোট হওয়া উচিত তাই সাধারণত তাদের দ্রুত হওয়া উচিত।
- কনস: আমাকে অনেক অনুরোধ করতে হবে। তালিকা থেকে কোনও আইটেম বেছে নেওয়ার পরে, ব্যবহারকারীকে মূল বিষয়বস্তু দেখার আগে অপেক্ষা করতে হবে এবং তারপরে প্রতিক্রিয়াগুলি দেখতে আরও দীর্ঘ অপেক্ষা করতে হতে পারে
সার্ভার-সাইড ক্যাশে
এই অনুরোধে, আমি আমার উত্সে সমস্ত উত্সের জন্য সমস্ত ডেটা "আনা" করতে একক কল করব। ডাটা সার্ভারে ক্যাশে হবে। ক্লায়েন্টটির তখন পূর্বের মতো একই সমাপ্তি সমাপ্তি হবে, যদি না আমার সার্ভারে ইতিমধ্যে ডেটা রয়েছে এবং কেবল ক্লায়েন্টকে এটি খাওয়াতে হবে তবে কলগুলির মধ্যে খুব বেশি অপেক্ষা করতে হবে না।
- পেশাদাররা: ক্লায়েন্টের পক্ষ থেকে কার্যকর করা এখনও সহজ, তবে বিলম্বিত সমস্যাগুলি ছাড়াই
- কনস: আরও কিছুটা জড়িত সার্ভারের দিক থেকে এবং প্রথম কলটি সত্যই দীর্ঘ সময় নিতে পারে।
ক্লায়েন্ট-পাশের ক্যাশে
এই দৃশ্যটি ক্লায়েন্ট ব্যতীত কেবল কখনও সার্ভারের জন্য একটি অনুরোধ না করে পূর্ববর্তীটির মতো: আমাকে সমস্ত তথ্য দিন। এখান থেকে ডেটা সংরক্ষণ এবং এটি যথাযথভাবে ব্যবহার করার ক্লায়েন্টের দায়িত্ব।
- পেশাদাররা: প্রথম কলের পরে খুব দ্রুত গতিতে সহজ সার্ভার বাস্তবায়ন
- কনস: প্রথম কলটি খুব ধীর এবং আরও জটিল ক্লায়েন্ট-সাইড বাস্তবায়ন হবে
আমি নিশ্চিত নই যে কোনটি সেরা পন্থা, বা সম্ভবত যদি আমি সুস্পষ্ট সমাধানটি অনুপস্থিত। যেকোন উপদেশ সাদরে গ্রহণ করা হবে!