1. Komunikasi Sinkron: REST vs gRPC
Remote Procedure Invocation (RPI) adalah gaya komunikasi sinkron di mana pemanggil (Client Service) mengirimkan request dan menunggu balasan (Response) dari Target Service secara langsung.
- HTTP REST API (JSON): Mudah dibaca manusia, standar industri untuk publik API, namun ukuran payload JSON relatif besar dan serialisasi teks lambat.
- gRPC (Protocol Buffers / HTTP/2): Format biner super kecil, diserialisasi sangat cepat, mendukung multiplexing HTTP/2, streaming dua arah, dan type-safe via berkas
.proto. Sangat direkomendasikan untuk komunikasi internal antar microservice (Service-to-Service).
2. Contoh Berkas Definition gRPC Protobuf
payment_service.proto
syntax = "proto3";
package payment;
service PaymentService {
rpc ProcessPayment (PaymentRequest) returns (PaymentResponse);
}
message PaymentRequest {
string order_id = 1;
double amount = 2;
string payment_method = 3;
}
message PaymentResponse {
string transaction_id = 1;
string status = 2; // SUCCESS, FAILED
string message = 3;
}