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

API gateway একটি server, যা আপনার backend service-গুলোর সামনে বসে এবং client-এর একমাত্র প্রবেশপথ। মোবাইল অ্যাপ দশটি service-এর ঠিকানা জানার বদলে একটির সাথেই কথা বলে।
Gateway সাধারণত যা করে
- Routing:
/ordersযায় orders service-এ,/usersusers 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: কেন লাগে এবং কীভাবে ফেল করে.


