تین غالب اختیارات ہیں REST (HTTP/JSON)، gRPC (HTTP/2 + Protobuf)، اور message queues (Kafka/RabbitMQ)۔ REST اور gRPC synchronous ہیں؛ queues asynchronous ہیں۔
تین غالب اختیارات ہیں REST (HTTP/JSON)، gRPC (HTTP/2 + Protobuf)، اور message queues (Kafka/RabbitMQ)۔ REST اور gRPC synchronous ہیں؛ queues asynchronous ہیں۔
| پہلو | REST | gRPC | Message Queue |
|---|
| انداز | Sync | Sync | Async |
| Payload | JSON (text) | Protobuf (binary) | Any (اکثر binary) |
| کارکردگی | اچھی | اعلیٰ | High throughput |
| معاہدہ | OpenAPI (سست) | .proto (سخت) | Schema/event |
| Streaming | محدود | Native (bidi) | Pub/sub |
| بہترین استعمال | Public APIs، browsers | Internal hot paths | Decoupling، events |
service OrderService {
// strongly-typed RPC, generated client + server stubs
rpc GetOrder (OrderId) returns (Order);
}
message OrderId { string id = 1; }
message Order { string id = 1; double total = 2; }
Order Service ─publish→ [ "OrderPlaced" topic ] ─▶ Inventory
└────▶ Notifications
(producer doesn't know or wait for consumers)
ہر جگہ sync gRPC/REST استعمال کرنا سخت coupling دوبارہ بناتا ہے؛ فوری پڑھنے کے لیے async استعمال کرنا غیر ضروری latency شامل کرتا ہے۔
Transport کا انتخاب ہر interaction کے لیے coupling اور کارکردگی کی حد مقرر کرتا ہے، اس لیے ہر استعمال کے لیے منتخب کرنا — عالمی طور پر نہیں — یہی ہے جو نظام کو تیز اور لچکدار دونوں رکھتا ہے۔
پختہ نظام بجا طور پر تینوں کو ملاتے ہیں: internal hot paths پر gRPC، edge پر REST، اور workflows کے لیے queues۔