Tiga pilihan dominan adalah REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf), dan antrian pesan (Kafka/RabbitMQ). REST dan gRPC adalah sinkron; antrian adalah asinkron.
Tiga pilihan dominan adalah REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf), dan antrian pesan (Kafka/RabbitMQ). REST dan gRPC adalah sinkron; antrian adalah asinkron.
| Aspek | REST | gRPC | Antrian Pesan |
|---|
| Gaya | Sinkron | Sinkron | Asinkron |
| Muatan | JSON (teks) | Protobuf (biner) | Apa saja (sering biner) |
| Kinerja | Bagus | Tinggi | Throughput tinggi |
| Kontrak | OpenAPI (longgar) | .proto (ketat) | Skema/peristiwa |
| Streaming | Terbatas | Asli (dua arah) | Pub/sub |
| Terbaik untuk | API publik, browser | Jalur panas internal | Decoupling, peristiwa |
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)
Menggunakan gRPC/REST sinkron di mana-mana menciptakan kembali sambungan ketat; menggunakan asinkron untuk pembacaan langsung pengguna menambah latensi yang tidak perlu.
Pilihan transport menetapkan batas sambungan dan kinerja untuk setiap interaksi, jadi memilih per kasus penggunaan — bukan secara global — adalah yang membuat sistem cepat dan tangguh.
Sistem matang sengaja mencampur ketiganya: gRPC pada jalur panas internal, REST di pinggir, dan antrian untuk alur kerja.