প্রকল্প সম্পর্কে
স্পেসটাইমডিবি হলো ক্লকওয়ার্ক ল্যাবসের একটি ওপেন সোর্স প্রজেক্ট, যা একটি রিলেশনাল ডাটাবেস এবং সার্ভার রানটাইমকে একত্রিত করেছে। ক্লায়েন্ট এবং ডাটাবেসের মাঝে আলাদা কোনো ওয়েব বা গেম সার্ভার ডিপ্লয় করার পরিবর্তে, ডেভেলপাররা রাস্ট, সি#, টাইপস্ক্রিপ্ট বা সি++ এ একটি মডিউল হিসেবে অ্যাপ্লিকেশন লজিক লেখেন। মডিউলটি টেবিল এবং রিডিউসার (যে ফাংশনগুলো ডাটা পরিবর্তন করে) সংজ্ঞায়িত করে। ক্লায়েন্টরা সরাসরি ডাটাবেসের সাথে সংযুক্ত হয়, রিডিউসার কল করে এবং টেবিল সাবস্ক্রাইব করে। ডাটা পরিবর্তিত হলে, স্পেসটাইমডিবি স্বয়ংক্রিয়ভাবে সাবস্ক্রাইব করা ক্লায়েন্টদের কাছে আপডেট পাঠিয়ে দেয়, ফলে ক্লায়েন্টদের পোল বা রিফেচ করতে হয় না। রিডমি (README) অনুযায়ী, দ্রুত অ্যাক্সেসের জন্য সমস্ত অ্যাপ্লিকেশন স্টেট মেমরিতে রাখা হয়, অন্যদিকে ডিস্কে থাকা একটি কমিট লগ স্থায়িত্ব ও ক্র্যাশ রিকভারি নিশ্চিত করে এবং সিস্টেমটি এসিড (ACID) গ্যারান্টি প্রদান করে। এটি এমএমওআরপিজি (MMORPG) গেম বিটক্রাফট অনলাইন (BitCraft Online)-এ ব্যবহৃত হয়, যার ব্যাকএন্ড একটি একক মডিউল হিসেবে চলে। ম্যাকওএস/লিনাক্সে শেল স্ক্রিপ্ট এবং উইন্ডোজে পাওয়ারশেলের মাধ্যমে ইনস্টলেশন করা যায়, তারপরে একটি সিএলআই (CLI) লগইন করতে হয় যা গিথুবের মাধ্যমে প্রমাণীকরণ করে। একটি কুইক স্টার্ট কমান্ড টেমপ্লেট থেকে একটি প্রজেক্ট তৈরি করে, এটিকে মেইনক্লাউডে প্রকাশ করে এবং স্বয়ংক্রিয়ভাবে রিবাউন্ড ও পুনরায় প্রকাশের জন্য ফাইলের পরিবর্তনগুলো ট্র্যাক করে। ডাটাবেসটি ডকার-এর সাহায্যে চালানো যায় অথবা কার্গো ব্যবহার করে সোর্স কোড থেকে বিল্ড করা যায়। সার্ভার মডিউলগুলো রাস্ট, সি#, টাইপস্ক্রিপ্ট এবং সি++ এ সমর্থিত; ক্লায়েন্ট এসডিকে (SDK) গুলো টাইপস্ক্রিপ্ট (রিয়াক্ট, নেক্সট.জেএস, ভিউ, স্লেভটে, অ্যাঙ্গুলার, নোড.জেএস, বান, ডেনো), রাস্ট, সি# (স্ট্যান্ডঅ্যালন এবং ইউনিটি), এবং সি++ (আনরিয়াল ইঞ্জিন) সমর্থন করে। ডকুমেন্টেশনে কুইকস্টার্ট, মূল ধারণা, টিউটোরিয়াল, ডিপ্লয়মেন্ট, সিএলআই এবং এসকিউএল রেফারেন্স অন্তর্ভুক্ত রয়েছে। প্রজেক্টটি বিজনেস সোর্স লাইসেন্স ১.১ এর অধীনে লাইসেন্সকৃত, যা লিঙ্ক করার একটি ব্যতিক্রমসহ কয়েক বছর পর এজিপিএল ৩.০ (AGPL v3.0)-এ রূপান্তরিত হয়, ফলে ব্যবহারকারীদের নিজস্ব কোড ওপেন-সোর্স করতে হয় না।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.