কম্পিউটার টিউটোরিয়াল

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

Next.js ডেভেলপারদের সার্ভার সাইড রেন্ডারিং ক্যাপাবিলিটি সহ ফুল-স্ট্যাক অ্যাপ্লিকেশন তৈরি করতে সক্ষম করে। Vercel এবং Netlify সার্ভারলেস ফাংশন দিয়ে ব্যাকএন্ড API লিখতে সাহায্য করে। তাই পরবর্তী প্রশ্ন হল Next.js অ্যাপের জন্য আদর্শ ডেটাবেস কী। এই পোস্টে আমি Next.js কমিউনিটির মধ্যে জনপ্রিয় ডেটাবেসগুলো রিভিউ করব। আমি কমেন্ট করব সার্ভারলেস মডেলের সাথে সেগুলো কীভাবে ফিট করে। দুটি জিনিস চেক করতে হবে:

  • সার্ভারলেস প্রাইসিং: কীমত পে-পার-ইউজ? ডেটাবেস ব্যবহার না হলে কি আপনাকে এখনো পেমেন্ট করতে হয়?
  • সার্ভারলেস কানেকশন: HTTP-ভিত্তিক কানেকশনের সাপোর্ট আছে কি? তাই সার্ভারলেস ফাংশনokkal সাধারণ কানেকশন সমস্যা নেই।

TLDR

আমি PlanetScale, Supabase, Upstash, Fauna, DynamoDB এবং MongoDB Atlas রিভিউ করেছি। প্রতিটি প্রোডাক্টের ফিচার সেট তুলনা করার জন্য নিচের টেবিল চেক করুন।

ফিচারPlanetScaleSupabaseUpstashFaunaDynamoDBMongoDB Atlas
APIMySQLPostgreSQLRedisFaunaDynamoDBMongoDB
টাইপRelationalRelationalKV StoreDocumentDocumentDocument
ফ্রি টিয়ার🟢🟢🟢🟢🟢🟢
সার্ভারলেস প্রাইসিং🟡 (ন্যূনতম $29)🟡 (ন্যূনতম $25)🟢🟡 (ন্যূনতম $22.5)🟢🟢
REST API🔴🟢🟢🟢🟢🟢
GraphQL API🔴🔴🔴🟢🔴🔴
গ্লোবাল রিপ্লিকেশন🔴🔴🟢🟢🟢🟡 (শুধু Dedicated-এ)
ডেটাবেস ব্রাঞ্চিং🟢🔴🔴🔴🔴🔴
রিয়েল-টাইম আপডেট🔴🟢🔴🔴🟢🟡 (Realm-এর মাধ্যমে)
প্রাইস রিডস$1.5 / 10m$0.09 / GB$0.2 / 100K$0.45 / 1m (4KB)$0.25 / 1m (2KB)$0.3 / 1m (4KB)
প্রাইস রাইটস$1.5 / 1m$0.09 / GB$0.2 / 100K$2.25 / 1m (1KB)$1.25 / 1m (1KB)$1.25 / 1m (1KB)
প্রাইস স্টোরেজ$1.25 / GB$0.125 / GB$0.25 / GB$0.23 / GB$0.25 / GB$0.25 / GB

PlanetScale

  • PlanetScale হল একটি MySQL-কম্প্যাটিবল ডেটাবেস-অ্যাজ-এ-সার্ভিস।
  • এটি পृष्ठভাগে Vitess ব্যবহার করে। এটি চমৎকার কারণ Vitess ইউটিউবের মতো জায়ান্টস দ্বারা সক্রিয়ভাবে ব্যবহৃত হচ্ছে।
  • PlanetScale ডেটাবেস ব্রাঞ্চিং কনসেপ্ট চালু করেছে। আপনি ব্রাঞ্চ তৈরি করতে পারেন এবং প্রোডাকশন ডেটাবেসে স্কিমা পরিবর্তন মার্জ করতে পারেন ঠিক গিটের মতো।据我所知, এই ফিচারটি PlanetScale-এর জন্য অনন্য।
  • প্রতি মাসে ১০০ মিলিয়ন রিডসহ ফ্রি টিয়ার আছে।
  • পেইড প্ল্যান $29 থেকে শুরু। পেইড প্ল্যানের মূল মূল্য উপাদানগুলো হল:
    • স্টোরেজ/মাস: প্রথম ২৫GB পাশাপাশি $1.25/GB
    • রিডস/মাস: প্রথম ৫০০ মিলিয়ন পাশাপাশি $1.50 প্রতি ১০ মিলিয়ন
    • রাইটস/মাস: প্রথম ৫০ মিলিয়ন পাশাপাশি $1.50 প্রতি ১ মিলিয়ন
  • PlanetScale-এ HTTP/REST-ভিত্তিক API নেই।

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

আমার মন্তব্য:

  • হোম পেজে বলা হয়েছে: Trusted By Github, Square, Slack ইত্যাদি। এই কোম্পানিগুলো PlanetScale ব্যবহার করে কি নাকি Vitess? যদি এই কোম্পানিগুলো PlanetScale ব্যবহার করে তবে এটি চমৎকার। অন্যথায়, আমি এই ধরনের মার্কেটিং নিয়ে ভালো অনুভব করি না। Vitess-এ আস্থা এবং PlanetScale-এ আস্থা আলাদা জিনিস।
  • PlanetScale আপনাকে TCP-ভিত্তিক কানেকশন (MySQL কানেকশন) ব্যবহার করতে বাধ্য করে। এটি সার্ভারলেস ফাংশনগুলোর জন্য সমস্যা হতে পারে কারণ তারা স্টেটলেস। তারা বলে কানেকশনের সংখ্যা Vitess-এ সমস্যা নয় কিন্তু প্ল্যানগুলোর জন্য Мак্স কানেকশন লিমিট আছে।
  • HTTP/REST API-এর অভাব PlanetScale-কে Cloudflare Workers এবং Vercel Edge প্ল্যাটফর্ম থেকে ব্যবহার করা অসম্ভব করে তোলে কারণ তারা TCP কানেকশন অনুমতি দেয় না।
  • PlanetScale পেইড প্ল্যান $29 থেকে শুরু, তাই প্রাইস শূন্যে স্কেল করে না। আপনি যদি ডিবি ব্যবহার না করেও থাকেন, তবুও প্রতি ডিবি কমপক্ষে $29 প্রতি মাস খরচ করতে হবে। আমার মতে এটি serverless ডেফিনিশনের সাথে কনফ্লিক্ট করে।

Supabase

  • Supabase হল ডেভেলপার টুলসের একটি সংগ্রহ যার মধ্যে ডেটাবেস, অথেনটিকেশন সার্ভিস, স্টোরেজ অন্তর্ভুক্ত। তারা নিজেদের Open Source Firebase Alternative বলে।
  • Supabase একটি PostgreSQL ডেটাবেস প্রদান করে।
  • Firebase-এর মতো, Supabase ডেভেলপারদের ডেটাবেসে পরিবর্তন রিয়েল-টাইমে শুনতে সক্ষম করে।
  • Supabase PostgREST ব্যবহার করে একটি RESTful API প্রদান করে। এটি সার্ভারলেস ফাংশনগুলিতে Supabase ব্যবহার করার পরিকল্পনা করলে খুব উপযোগী।
  • Supabase REST API-এর সুবিধায় Cloudflare Workers-এ ব্যবহার করা যায়। এটি চেক করুন।
  • Supabase ফ্রি টিয়ার ৫০০MB স্টোরেজ এবং মাসিক ২GB ডেটা ট্রান্সফার तक সীমাবদ্ধ।
  • PlanetScale-এর মতো, Supabase-এর পেইড ডেটাবেসের জন্য ন্যূনতম খরচ $25/মাস। পে-অ্যাজ-ইউ-গো প্রাইসিং সারাংশ:
    • স্টোরেজ: $0.125 প্রতি GB-মাস
    • ডেটা ট্রান্সফার: $0.09 প্রতি GB

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

আমার মন্তব্য:

  • Supabase ডেটাবেস, অথেনটিকেশন সার্ভিস, অবজেক্ট স্টোরেজ এবং সার্ভারলেস ফাংশনও আসছে। আমি চিন্তিত যে একটি স্টার্টআপের জন্য অনেক সার্ভিস হাই কোয়ালিটিতে প্রদান করে Firebase-এর সাথে প্রতিযোগিতা করা কঠিন হতে পারে যাকে Google বেকিং করছে। আশা করি তারা সফল হবে।
  • PlanetScale-এর মতো, আমি মনে করি তাদের প্রাইসিং সত্যিকারের সার্ভারলেস নয়। তাদের পেইড প্ল্যান একটি ফিক্সড মাসিক খরচ দাবি করে তাই এটি কখনো শূন্যে স্কেল করে না।

Upstash Redis

  • Upstash পার রিকোয়েস্ট প্রাইসিং-এ রেডিস-অ্যাজ-এ-সার্ভিস প্রদান করে।
  • এটি রেডিস এবং REST API দুটোই প্রদান করে। তাই আপনি এটি সার্ভারলেস এবং এজ (Cloudflare Workers) ফাংশনদুইতেই ব্যবহার করতে পারেন।
  • Upstash-এ রিজনাল এবং গ্লোবাল অপশন আছে। গ্লোবাল ডেটাবেস ডেটাকে একাধিক রিজনে রিপ্লিকেট করে।
  • প্রতি দিন সর্বোচ্চ ১০,০০০ কমান্ডসহ ফ্রি টিয়ার আছে। এর পে-অ্যাজ-ইউ-প্রাইসিং নিচের মতো:
    • কমান্ডস: $0.2 প্রতি 100K কমান্ড
    • স্টোরেজ: $0.25 প্রতি GB

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

আমার মন্তব্য:

  • আমরা (Upstash) এবং RedisLabs দুইই মনে করি রেডিস ক্লাসিক রেডিস ইউজ কেস (ক্যাশিং, KV-স্টোর)-র পাশাপাশি অনেক ইউজ কেসের জন্য পর্যাপ্ত শক্তিশালী। কিন্তু এখনো অনেক ডেভেলপার SQL ডেটাবেসকে প্রাইমারি ডেটা স্টোর হিসেবে পছন্দ করেন। আপনার জটিল কোয়েরি ক্যাপাবিলিটি দরকার হলে, রেডিস আপনার প্রথম পছন্দ নাও হতে পারে।

Fauna

  • Fauna একটি গ্লোবালি রিপ্লিকেটেড স্ট্রংলি কনসিস্টেন্ট ডেটাবেস ক্লাউড সার্ভিস হিসেবে প্রদান করে।
  • এটি Fauna API-এর পাশাপাশি GraphQL API প্রদান করে।
  • এর কানেকশনগুলো HTTP-ভিত্তিক তাই আপনি কোনো কানেকশন-রিলেটেড সমস্যা ছাড়া সার্ভারলেস ফাংশনগুলিতে Fauna ব্যবহার করতে পারেন।
  • এর সবচেয়ে বেসিক প্ল্যান (Individual) $22.5/মাস থেকে শুরু।
  • Fauna প্রাইসিং:
    • রিডস: $0.45/মিলিয়ন ইউনিট (4KB)
    • রাইটস: $2.25/মিলিয়ন ইউনিট (1KB)
    • স্টোরেজ: $0.23/GB

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

আমার মন্তব্য:

  • গ্লোবাল স্ট্রং কনসিস্টেন্সি এক্সট্রা পারফরম্যান্স কস্টের সাথে আসে। রাইটস অন্যান্য বিকল্প ডেটাবেস চেয়ে বেশি লেটেন্সি دارায়।
  • আপনি যদি GraphQL ব্যবহার করেন তবে এটি চমৎকার কিন্তু অন্যথায় FQL আমার জন্য শিখতে এবং ব্যবহার করতে কঠিন ছিল।
  • Fauna প্রাইসিং-এর নিজস্ব ইউনিট (TRO, TWO, TCO) এবং অনেক ডাইমেনশন আছে। প্রাইসিং বুঝতে আর্টিকেল পড়তে হয়।

MongoDB Atlas

  • Atlas হল একটি ম্যানেজড সার্ভিস হিসেবে MongoDB যাতে সার্ভারলেস, শেয়ার্ড এবং ডেডিকেটেড প্ল্যান আছে।
  • ডেটা (REST) API সম্প্রতি ঘোষণা করা হয়েছে. এটি আপনাকে HTTP ব্যবহার করে ডেটাবেস অ্যাক্সেস করতে দেয়।
  • MongoDB Atlas-এ সার্ভারলেস প্ল্যান আছে কিছু লিমিটেশনসহ। এই প্ল্যানের প্রাইসিং পের অপারেশন তাই সার্ভারলেস প্রোডাক্ট থেকে প্রত্যাশা অনুযায়ী শূন্যে স্কেল করে।
  • মাল্টি-রিজন রিপ্লিকেশন শুধু Dedicated প্ল্যানে উপলব্ধ।
  • সার্ভারলেস প্রাইসিং:
    • রিডস: $0.30 প্রতি মিলিয়ন ইউনিট (4KB)
    • রাইটস: $1.25 প্রতি মিলিয়ন ইউনিট (1KB)
    • স্টোরেজ: $0.25/GB-মাস

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

আমার মন্তব্য:

  • সার্ভারলেস প্ল্যান এবং ডেটা API আমাদের বলে যে MongoDB Atlas সার্ভারলেস স্পেস উপেক্ষা করছে না। কিন্তু উভয় সমাধান প্রিভিউ ফেজে আছে এবং সার্ভারলেস অ্যাপ্লিকেশনের জন্য আইডিয়াল ডেটা সমাধান হতে কিছু উন্নতি দরকার।

DynamoDB

  • কি-ভ্যালু এবং ডকুমেন্ট ডেটা মডেল সহ ফুলি ম্যানেজড NoSQL ডেটাবেস।
  • কানেকশনগুলো HTTP-ভিত্তিক তাই এটি সার্ভারলেস অ্যাপ্লিকেশনে ফিট করে।
  • প্রাইসিং ডেটা ট্রান্সফার কস্টের পাশাপাশি পের অপারেশন। তাই এটি শূন্যে স্কেল করে।
  • ডিফল্টভাবে, রিডস eventual consistent। আপনি স্ট্রংলি কনসিস্টেন্ট রিডসও রিকোয়েস্ট করতে পারেন কিন্তু এর কিছু লিমিটেশন আছে।
  • এক্সট্রা কস্টে মাল্টি-রিজন রিপ্লিকেশন ইনএবল করতে পারেন।
  • প্রাইসিং:
    • রিডস: $0.25 প্রতি মিলিয়ন রিড রিকোয়েস্ট ইউনিট (2KB)
    • রাইটস: $1.25 প্রতি মিলিয়ন রাইট রিকোয়েস্ট ইউনিট (1KB)
    • ডেটা ট্রান্সফার (আউট): $0.09 প্রতি GB
    • স্টোরেজ: $0.25 প্রতি GB-মাস

Next.js অ্যাপের জন্য সেরা ডেটাবেস নির্বাচন: সার্ভারলেস-রেডি অপশনসমূহ

আমার মন্তব্য:

  • আমার কাছে, DynamoDB API রেডিস বা MongoDB-এর মতো ইন্টিউটিভ নয়।
  • ভেন্ডর লক-ইন সমস্যা আছে। DynamoDB শুধু AWS-এ আছে এবং আপনি কোড পরিবর্তন ছাড়া আপনার অ্যাপ্লিকেশন অন্য প্রোভাইডারে মুভ করতে পারবেন না।

উপসংহার

তাহলে Next.js-এর জন্য সেরা ডেটাবেস কী? প্রত্যাশা অনুযায়ী, কোনো একক উত্তর নেই। কিন্তু কিছু শর্তসাপেক্ষ উত্তর দিই:

  • রিলেশনাল DB দরকার 👉🏻 Supabase বা PlanetScale
  • ডেটাবেস ব্রাঞ্চিং দরকার 👉🏻 PlanetScale
  • রিয়েল-টাইম আপডেট দরকার 👉🏻 Supabase বা MongoDB Atlas
  • গ্লোবাল লো লেটেন্সি দরকার 👉🏻 Upstash বা DynamoDB
  • গ্লোবাল স্ট্রং কনসিস্টেন্সি দরকার 👉🏻 Fauna
  • লো লেটেন্সি কি-ভ্যালু স্টোর দরকার 👉🏻 Upstash
  • PostgreSQL পছন্দ 👉🏻 Supabase
  • MySQL পছন্দ 👉🏻 PlanetScale
  • Redis পছন্দ 👉🏻 Upstash
  • Mongo পছন্দ 👉🏻 MongoDB Atlas
  • GraphQL দরকার 👉🏻 Fauna

আমি ন্যায়সঙ্গত এবং সঠিক হতে চেষ্টা করেছি। আপনি যদি মনে করেন আমাকে কিছু ফিক্স করতে হবে, দয়া করে আমার টুইটারে কমেন্ট দিন।

  1. আইফোনের জন্য ১৫টি নির্ভরযোগ্য آبহাওয়া অ্যাপ - সঠিক পূর্বাভাস ও রিয়েল-টাইম অ্যালার্ট

  2. ২০২২ সালের শীর্ষ ১৫ অ্যাপল টিভি গেম

  3. ২০২২ সালের সেরা ১০ ওকুলাস ভিআর গেম: আভ্যন্তরীণ অভিজ্ঞতা ও রোমাঞ্চকর অ্যাডভেঞ্চার

  4. পিসি জন্য টপ ৯ নিন্টেন্ডো DS এমুলেটর— হাই-পারফরম্যান্স, সিকিউর এবং ফ্রি