Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Komunikasi · Modul 8 dari 24

Belajar Microservices - Remote Procedure Invocation

Komunikasi sinkron antar service menggunakan HTTP REST API, gRPC (Protocol Buffers), SOAP/RPC, latensi jaringan, serta mitigasi cascading failures.

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;
}