De drie dominante opties zijn REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) en message queues (Kafka/RabbitMQ). REST en gRPC zijn synchroon; queues zijn asynchroon.
De drie dominante opties zijn REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) en message queues (Kafka/RabbitMQ). REST en gRPC zijn synchroon; queues zijn asynchroon.
| Aspect | REST | gRPC | Message Queue |
|---|
| Stijl | Sync | Sync | Async |
| Payload | JSON (tekst) | Protobuf (binair) | Willekeurig (vaak binair) |
| Prestatie | Goed | Hoog | Hoge doorvoer |
| Contract | OpenAPI (los) | .proto (strikt) | Schema/event |
| Streaming | Beperkt | Nief (bidi) | Pub/sub |
| Beste voor | Openbare APIs, browsers | Interne kritieke paden | Ontkoppeling, 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 overal gebruiken maakt strakke koppeling opnieuw; async gebruiken voor een directe lees-operatie van een gebruiker voegt onnodige latentie toe.
De transportkeuze bepaalt de koppelings- en prestatiegraad voor elke interactie, dus kiezen per use case — niet globaal — is wat het systeem zowel snel als veerkrachtig houdt.
Volwassen systemen mengen opzettelijk alle drie: gRPC op interne kritieke paden, REST aan de rand en queues voor workflows.