একটি সিস্টেমে, কম্পোনেন্টগুলি (সার্ভিস, ক্লায়েন্ট) APIs এবং বিভিন্ন প্রোটোকলের মাধ্যমে যোগাযোগ করে — সিঙ্ক্রোনাস (REST, gRPC) এবং অ্যাসিঙ্ক্রোনাস (messaging/queues)। কম্পোনেন্টগুলি কীভাবে যোগাযোগ করে তা বোঝা একাধিক অংশ নিয়ে তৈরি সিস্টেম ডিজাইন করার জন্য মৌলিক।
সিঙ্ক্রোনাস যোগাযোগ (request/response)
The caller WAITS for a response (blocking):
REST (HTTP) → most common; resources over HTTP (JSON) → simple, ubiquitous, web-friendly
gRPC → high-performance RPC (binary, HTTP/2) → fast, typed; good for internal services
GraphQL → flexible queries (client requests exactly what it needs)
→ for: direct request/response where the caller needs an answer now
