API gateway: microservice সিস্টেমের সদর দরজা

API gateway অনেক service-এর সামনে একটি একক প্রবেশপথ। এতে কী থাকা উচিত, কী নয়, আর কীভাবে এটি bottleneck হয়ে ওঠে, জানুন।

একটি গেট থেকে অনেক service-এ যাওয়া পথ

API gateway একটি server, যা আপনার backend service-গুলোর সামনে বসে এবং client-এর একমাত্র প্রবেশপথ। মোবাইল অ্যাপ দশটি service-এর ঠিকানা জানার বদলে একটির সাথেই কথা বলে।

Gateway সাধারণত যা করে

  • Routing: /orders যায় orders service-এ, /users users service-এ।
  • Authentication ও authorization: token প্রান্তেই একবার যাচাই।
  • প্রতি client-এর rate limiting ও quota।
  • TLS termination: HTTPS এক জায়গায় সামলানো।
  • Request/response বদল: ফরম্যাট পাল্টানো, compress, cache।
  • Aggregation: একাধিক service call মিলিয়ে এক response, যা মোবাইল client-এর round trip বাঁচায়।
  • Observability: log, metric ও tracing ID এক জায়গায়।

Gateway, load balancer ও reverse proxy

এরা কিছুটা মিলে যায়। Load balancer একটি service-এর কপিগুলোর মধ্যে traffic ভাগ করে। Reverse proxy request এগিয়ে দেয় (Nginx)। Gateway যোগ করে API-স্তরের সুবিধা, যেমন auth, quota ও versioning। অনেক প্রোডাক্ট তিনটিই করে।

BFF pattern

Backend for Frontend হলো একটি নির্দিষ্ট client-এর জন্য বানানো gateway, যেমন মোবাইল অ্যাপের জন্য একটি আর ওয়েবের জন্য আরেকটি। প্রতিটি তার client-এর দরকারি data-ই ফেরত দেয়।

ঝুঁকি

  • Single point of failure ও bottleneck। Load balancer-এর পেছনে একাধিক instance চালান।
  • অতিরিক্ত logic। Business rule gateway-তে ঢুকলে এটি লুকানো monolith হয়ে যায়। পাতলা রাখুন।
  • এক hop বাড়তি latency। ছোট, তবে আছে।

টুল

Kong, NGINX, Envoy, AWS API Gateway, Cloudflare ইত্যাদি।

মূল কথা: auth, সীমা ও routing-এর মতো সবার কাজে gateway নিন, business logic service-এ রাখুন, আর gateway redundant চালান।


System Design সিরিজের 13 নম্বর পর্ব (মোট ১৫)। আগের পর্ব: Message queue: কেন লাগে এবং কীভাবে ফেল করে.

আরও পড়ুন

Recursion ও backtracking সহজ উদাহরণে

Recursion সমস্যার ছোট কপি সমাধান করে সমাধান করে। অনেক interview সমস্যায় ব্যবহৃত চিন্তার ধাপ ও backtracking টেমপ্লেট শিখুন।

Interview ও DSA•৩ মিনিটে পড়া