Contenido del curso
gRPC
- 6

gRPC: qué lo hace más rápido que REST
Viendo ahora - 7

JSON vs Protobuf: cuándo usar cada uno
08:56 min - 8

Definir un StudentService con proto buffers en Go
04:27 min - 9

Implementación de Repositorios y gRPC en Go con PostgreSQL
11:59 min - 10

Criando o primeiro servidor gRPC em Go
12:50 min - 11

Prueba tu servidor gRPC con Postman
04:08 min - 12

Definiendo el servicio de test en gRPC
03:38 min - 13

Implementando servidor gRPC con PostgreSQL en Go
17:45 min - 14

Client streaming en gRPC con Go
16:53 min - 15

Implementación de Streaming del Servidor con gRPC y Protobufs
16:25 min - 16

Streaming del servidor con gRPC en Go
16:23 min - 17

Streaming bidireccional en gRPC con Go
16:04 min - 18

Prueba de streaming bidireccional con gRPC
04:55 min - 19

Implementando un cliente gRPC en Go
13:10 min - 20

Streaming bidireccional en gRPC con Go
12:16 min
Conclusión
gRPC: qué lo hace más rápido que REST
Resumen
Cuando los microservicios se multiplican, la latencia entre ellos se vuelve un dolor de cabeza. Aquí entra gRPC, un framework creado por Google que reinventa el viejo Remote Procedure Call para hacerlo más veloz, eficiente y apto para arquitecturas distribuidas modernas. Si trabajas con servicios que necesitan hablar entre sí en tiempo real, esto te interesa.
Qué es RPC y cómo funciona la llamada remota
Antes de entrar a gRPC, conviene entender la base. RPC significa Remote Procedure Call y es un protocolo donde un cliente le pide a un servidor que ejecute una rutina de código y devuelva una respuesta.
Lo interesante es cómo se ve a nivel de código. El cliente escribe algo como client.setStudent(...) y pasa los parámetros, como si ese método viviera dentro del cliente. Pero la realidad es otra: la implementación de setStudent vive del lado del servidor. RPC oculta por completo esa implementación remota y la hace ver local.
¿Qué es RPC en pocas palabras? Es un protocolo que permite a un cliente invocar funciones que se ejecutan en un servidor remoto, pero usando una sintaxis idéntica a la de una llamada local.
Por qué Google creó gRPC y qué lo hace más rápido
Google vio que el RPC tradicional tenía margen para volverse mucho más eficiente, así que construyó un framework con dos decisiones técnicas clave: usar HTTP/2 como capa de transporte y Protobufs como formato de intercambio de datos.
Con esa combinación, gRPC consigue mover más información, en menos tiempo y con conexiones más estables. Y aquí viene lo interesante: cada una de esas piezas resuelve un cuello de botella distinto.
Qué ventajas trae HTTP/2 frente a HTTP/1
La diferencia entre HTTP/2 y HTTP/1 no es cosmética, es de rendimiento puro. Estas son las mejoras que aprovecha gRPC:
- Multiplexación: permite enviar varios mensajes de forma simultánea sobre la misma conexión TCP, sin abrir conexiones nuevas.
- Serialización binaria: HTTP/2 soporta enviar data serializada, mientras que HTTP/1 solo acepta texto plano.
- Reutilización de conexión: hablar con el servidor se vuelve más liviano porque no hay que reabrir el canal cada vez.
Eso significa más requests, más data y menos espera entre cliente y servidor.
Qué papel cumplen los Protobufs en gRPC
Los Protobufs, o Protocol Buffers, son el método con el que gRPC serializa y deserializa la información. Esa serialización binaria pesa menos que el texto plano y se procesa más rápido en ambos extremos.
¿Por qué Protobufs es más rápido que JSON? Porque codifica la data en formato binario compacto, lo que reduce el tamaño del mensaje y acelera la serialización frente al texto plano de JSON.
Cómo funciona el streaming en gRPC y cuáles son sus métodos
Una de las peculiaridades más potentes de gRPC es el streaming: la capacidad de enviar datos de manera constante a través de un canal abierto. Esto abre la puerta a cuatro tipos de comunicación entre cliente y servidor.
Cuáles son los cuatro tipos de métodos en gRPC
Cada método responde a un patrón de comunicación distinto, y elegir el correcto depende del caso de uso:
- Unario: el cliente envía una petición y el servidor responde una vez. Es el patrón más parecido a REST.
- Streaming del lado del cliente: el cliente envía múltiples mensajes y el servidor responde una sola vez al final.
- Streaming del lado del servidor: el cliente hace una petición única y el servidor responde con un flujo continuo de datos en pequeñas partes.
- Streaming bidireccional: tanto cliente como servidor envían flujos de datos por el mismo canal.
Un detalle importante del streaming bidireccional: el cliente puede enviar M mensajes y el servidor responder con N mensajes. No existe obligación de comunicación uno a uno. Si tu cliente envía cinco veces, el servidor puede responder dos, diez o ninguna; depende de la lógica del servicio.
Para quién tiene sentido usar gRPC en lugar de REST
gRPC nace con una intención clara: crear RPC más eficientes y más rápidos apoyándose en HTTP/2, Protobufs y streaming. Si tu arquitectura tiene microservicios que se comunican intensamente entre sí, o si necesitas enviar grandes volúmenes de datos en tiempo real, este framework te va a dar ventajas que REST tradicional no ofrece.
Ahora bien, JSON sigue siendo el estándar de la web y es lo que usamos al trabajar con REST. Entonces, ¿por qué deberías cambiarte a Protobufs? Esa comparación a fondo, con sus ventajas y limitaciones, la dejamos para la siguiente clase. Cuéntame en los comentarios qué arquitectura estás usando hoy y si ya consideraste mover parte de tu comunicación a gRPC.