It-tliet għażliet dominanti huma REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf), u filarun ta' messaġġi (Kafka/RabbitMQ). REST u gRPC huma sinkroniċi; filarun huma asinkroniċi.
It-tliet għażliet dominanti huma REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf), u filarun ta' messaġġi (Kafka/RabbitMQ). REST u gRPC huma sinkroniċi; filarun huma asinkroniċi.
| Aspett | REST | gRPC | Filaru ta' Messaġġi |
|---|
| Stil | Sinkroniċi | Sinkroniċi | Asinkroniċi |
| Pagħa | JSON (test) | Protobuf (binarju) | Kwalunkwe (ħafna drabi binarju) |
| Prestazzjoni | Tajba | Għolja | Throughput għoli |
| Kuntratt | OpenAPI (ħfifa) | .proto (stretta) | Skema/avveniment |
| Streaming | Limitata | Nattiva (bidirezzjonali) | Pub/sub |
| Aħjar għal | API pubbliċi, browser | Mogħdijiet interni sħun | Dekopljament, avvenimenti |
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)
L-użu ta' gRPC/REST sinkroniċi kullimkien jerħaq il-koppjament stiċċ; l-użu ta' asinkroniċi għal qari immedjat tal-utent iżid latenza mhux meħtieġa.
L-għażla tat-trasport issettja l-koppjament u l-limitu tal-prestazzjoni għal kull interazzjoni, għalhekk għażla għal kull każ ta' użu — mhux globalment — hija l-aħjar mod biex tiswa s-sistema veloċi u reżiljenti.
Sistemi maturi jħalltu deliberatament it-tletaħ: gRPC fuq mogħdijiet interni sħun, REST fil-ħaff, u filarun għal workflows.