Die drei dominanten Optionen sind REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) und Message Queues (Kafka/RabbitMQ). REST und gRPC sind synchron; Queues sind asynchron.
Die drei dominanten Optionen sind REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) und Message Queues (Kafka/RabbitMQ). REST und gRPC sind synchron; Queues sind asynchron.
| Aspekt | REST | gRPC | Message Queue |
|---|
| Stil | Synchron | Synchron | Asynchron |
| Payload | JSON (Text) | Protobuf (Binär) | Beliebig (oft Binär) |
| Leistung | Gut | Hoch | Hoher Durchsatz |
| Vertrag | OpenAPI (locker) | .proto (streng) | Schema/event |
| Streaming | Begrenzt | Nativ (bidirektional) | Pub/sub |
| Am besten für | Öffentliche APIs, Browser | Interne kritische Pfade | Entkopplung, 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)
Überall synchrones gRPC/REST zu verwenden, erzeugt enge Kopplung neu; asynchron für einen sofortigen Lesevorgang des Benutzers zu verwenden, fügt unnötige Latenz hinzu.
Die Transportwahl setzt die Kopplung und die Leistungsgrenze für jede Interaktion, daher ist die Auswahl pro Use-Case — nicht global — das, was das System schnell und robust hält.
Reife Systeme mischen bewusst alle drei: gRPC auf internen kritischen Pfaden, REST am Rand und Queues für Workflows.