Explorer
KNOW-PAT-205

RPC haute performance via contrats partagés (gRPC)

Domaine
backend
Type
pattern
Priorité
P2

RPC haute performance via contrats partagés (gRPC)

Problème

Les APIs REST JSON peuvent devenir lentes et verbeuses pour la communication interne entre services. Le typage est souvent dédoublé côté client et serveur.

Solution

Utiliser un framework RPC basé sur HTTP/2 et Protocol Buffers : le service et ses messages sont définis dans un contrat partagé, puis générés dans chaque langage.

Pourquoi c'est utile

  • Performance : HTTP/2 + protobuf sérialisé binaire, plus compact que JSON.
  • Contrat fort : le fichier .proto sert de source de vérité.
  • Multi-langage : génération de clients/serveurs pour Go, Java, Python, Node, etc.
  • Streaming : support du streaming bidirectionnel natif.

Quand l'appliquer

  • Communication interne entre microservices.
  • Besoin de performance et de faible latence.
  • Écosystème multi-langage avec types partagés.

Quand NE PAS l'appliquer

  • API publique exposée à des clients web (REST/JSON est plus universel).
  • Debugging via navigateur ou cURL (protobuf est moins lisible).
  • Équipe non familière avec Protocol Buffers.

Références