Contenido del curso
gRPC
- 6

gRPC: qué lo hace más rápido que REST
08:35 min - 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
De monolito a microservicios con gRPC
Resumen
La arquitectura de microservicios con gRPC resuelve uno de los mayores retos del desarrollo moderno: cómo lograr que servicios independientes se comuniquen rápido y sin fallos en cadena. Aquí entiendes cómo evolucionamos desde aplicaciones monolíticas hasta sistemas distribuidos donde cada módulo trabaja por su cuenta.
¿Qué problema tenían las arquitecturas monolíticas?
En los inicios del desarrollo de software, casi todas las aplicaciones vivían bajo un mismo techo. Imagínate una tienda en línea donde la interfaz, los pedidos, los productos y las devoluciones estaban encapsulados en la misma base de código.
¿Suena ordenado? En la práctica, no lo era. Un fallo en el servicio de pedidos tumbaba toda la aplicación, aunque productos funcionara perfecto. Eso es lo que llamamos un punto único de fallo.
¿Qué es una arquitectura monolítica? Es un sistema donde toda la lógica de la aplicación vive en una sola base de código y se despliega como una unidad. Si una parte falla, todo se cae.
A esto súmale la carga cognitiva: tener todos esos archivos en un mismo repositorio hacía que mantener el producto se volviera una pesadilla.
¿Cómo apareció la arquitectura orientada a servicios?
Con el tiempo, los equipos empezaron a separar responsabilidades. Por un lado el UI, por otro el backend, y al sumar integraciones como un servicio de deliveries, surgió la necesidad de un bus central que conectara a todos.
Ese bus se convirtió en el corazón de la arquitectura orientada a servicios (SOA). El problema es que, aunque había divisiones más claras, cada bloque seguía siendo grande y costoso de mantener. El bus mismo era un ente centralizado, otro punto crítico que vigilar.
¿Qué son los microservicios y qué ganas con ellos?
La evolución natural fue partir esos bloques en piezas mucho más pequeñas y especializadas. Un módulo para usuarios, otro para productos, otro para órdenes. Cada uno con una tarea bastante específica y, por lo general, con su propio almacenamiento independiente.
Eso son los microservicios: servicios autónomos, enfocados y desacoplados.
¿Qué ganas al adoptarlos?
- Independencia operativa: si el módulo de órdenes falla, usuarios y productos siguen funcionando.
- Despliegues más simples: cada microservicio se actualiza por separado, sin tocar los demás.
- Mantenimiento manejable: módulos pequeños son más fáciles de leer, probar y escalar.
- Almacenamiento aislado: los datos de un servicio no contaminan a los otros.
Es un cambio enorme respecto al monolito. Pero, como en todo, llega con su propia letra pequeña.
¿Cuál es el nuevo problema al usar microservicios?
Aquí viene lo interesante. Si parto mi aplicación en muchos servicios pequeños, ¿cómo hago que se comuniquen entre sí cuando una petición involucra a varios? Por ejemplo, comprar un producto puede tocar el servicio de usuarios, el de productos y el de órdenes al mismo tiempo.
Cada salto entre microservicios añade latencia. Y si no controlas esa latencia, la experiencia del cliente se degrada.
¿Por qué los microservicios necesitan comunicación rápida? Porque una sola acción del usuario puede involucrar varios servicios. Si cada salto es lento, la suma de retrasos arruina la experiencia.
¿Cómo encaja gRPC en la arquitectura de microservicios?
Aquí es donde gRPC se vuelve una pieza fundamental. Está diseñado para que la comunicación entre microservicios ocurra con la menor latencia posible, sin sacrificar la experiencia del cliente final.
Los protobuffers que ya estuviste compilando no solo definen estructuras de datos: también te permiten definir servicios que usan esas estructuras para hablar entre sí. Esa es la base sobre la que gRPC construye su velocidad.
¿Qué son los servicios en protobuffers? Son definiciones que describen qué operaciones puede ofrecer un microservicio y qué datos intercambia, todo con tipado fuerte y compilable a múltiples lenguajes.
¿Por qué la velocidad es la clave del éxito?
Piensa en una compra: el usuario hace clic, y por detrás tu sistema consulta inventario, valida pago, registra la orden y dispara el envío. Si cada llamada entre servicios tarda cientos de milisegundos, el usuario lo siente.
gRPC ataca justo ese cuello de botella. Por eso se ha convertido en el estándar para conectar microservicios cuando el rendimiento importa.
En la siguiente clase entras de lleno a entender qué es gRPC, cómo funciona por debajo y por qué logra esa velocidad. ¿Qué te llamó más la atención de esta evolución hacia los microservicios? Cuéntamelo en los comentarios.