¿Qué es un Webhook y cómo funciona?
De la notificación en tiempo real a la arquitectura dirigida por eventos
🌱 Nivel 1: Modo Principiante (Lo que necesitas saber primero)
#### ¿Qué es y de qué trata?
Imagina que pediste una pizza a domicilio. Tienes dos opciones para saber cuándo llegó:
Un Webhook es exactamente ese timbre digital. En lugar de que tu aplicación tenga que preguntarle a otro servidor miles de veces al día "¿ya hay novedades? ¿ya hay novedades?", el otro servidor le envía una notificación automática a tu aplicación en el milisegundo exacto en que ocurre un evento importante.
#### ¿Dónde se aplica en la vida real?
git push), un Webhook le avisa al canal de Discord de los desarrolladores: "¡Carlos acaba de actualizar la rama main!".#### ¿Por qué te debe importar como estudiante o profesional de TI?
Porque los Webhooks son el estándar de la industria para construir sistemas en tiempo real. Sin ellos, los servidores colapsarían por saturación de peticiones inútiles y las aplicaciones se sentirían lentas y torpes.
⚙️ Nivel 2: Modo Ingeniero (La arquitectura técnica real)
#### Cómo funciona por dentro paso a paso
Técnicamente, un Webhook es una petición HTTP POST invertida que viaja con un paquete de datos en formato JSON:
sequenceDiagram autonumber actor Cliente as Usuario participant Tienda as Tu Servidor (Listener) participant Pasarela as Stripe / Banco (Emisor) Cliente->>Tienda: 1. Pagar carrito ($50 USD) Tienda->>Pasarela: 2. Crear sesión de pago Cliente->>Pasarela: 3. Ingresar tarjeta y autorizar Note over Pasarela: ¡Transacción exitosa en el banco! Pasarela->>Tienda: 4. HTTP POST /api/webhooks/stripe (Payload JSON + Firma HMAC) Note over Tienda: Verifica firma criptográfica y guarda en BD Tienda-->>Pasarela: 5. Responde HTTP 200 OK (Recibido exitosamente)#### Anatomía del Payload JSON de un Webhook
El emisor envía un cuerpo con los detalles exactos del evento:
{ "event": "pago.completado", "timestamp": 1725746400, "data": { "transaccionId": "tx_998124", "clienteEmail": "estudiante@arostik.com", "monto": 49.99, "moneda": "USD", "estado": "aprobado" }}#### Ejemplo de Servidor Receptor (Webhook Listener en Node.js / Next.js):
// app/api/webhooks/route.jsimport { NextResponse } from "next/server";import crypto from "crypto"; export async function POST(request) { const payload = await request.text(); const signature = request.headers.get("x-webhook-signature"); const secret = process.env.WEBHOOK_SECRET; // 1. Validar la firma criptográfica HMAC-SHA256 para evitar atacantes const expectedSignature = crypto .createHmac("sha256", secret) .update(payload) .digest("hex"); if (signature !== expectedSignature) { return NextResponse.json({ error: "Firma inválida" }, { status: 401 }); } const data = JSON.parse(payload); // 2. Procesar el evento según su tipo if (data.event === "pago.completado") { console.log("Activando cuenta para:", data.data.clienteEmail); // Tarea: Actualizar base de datos } // 3. Responder SIEMPRE de inmediato con 200 OK return NextResponse.json({ received: true }, { status: 200 });}#### Tabla Comparativa: Webhooks vs. Polling tradicional vs. WebSockets
| Característica | Webhooks (Event-Driven) | Polling (Sondeo tradicional) | WebSockets (Full Duplex) |
|---|---|---|---|
| Flujo de datos | El emisor empuja (Push) cuando ocurre un evento | El cliente pregunta continuamente (Pull) | Canal bidireccional abierto permanente |
| Consumo de recursos | Ultra bajo (solo trabaja cuando hay eventos) | Muy alto (cientos de peticiones vacías) | Medio (mantiene sockets TCP abiertos en memoria) |
| Casos de uso ideales | Pagos bancarios, alertas GitHub, emails transaccionales | Sistemas heredados que no soportan callbacks | Chats en vivo, juegos multijugador, trading financiero |
En la Tecnología Real (Explicación Sencilla)
200 OK en menos de 200 milisegundos, y mandar la tarea pesada a una cola en segundo plano (Background Worker como Redis/BullMQ). Además, debes registrar el transaccionId para que si el evento llega duplicado, tu sistema lo ignore con gracia (Idempotencia).📖 Glosario Rápido
Mini Cuestionario Interactivo3 preguntas
Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.
En la analogía cotidiana, ¿qué representa un Webhook frente al sondeo continuo (Polling)?
¿Por qué es crucial validar la firma criptográfica (HMAC) en la cabecera de un Webhook entrante?
¿Qué debe hacer un servidor receptor de Webhooks apenas recibe el mensaje?
🎯 Conclusión Aros Student
Los Webhooks transformaron la web de un sistema pasivo de preguntas y respuestas en un ecosistema reactivo y conectado en tiempo real. En Aros Student, aprendes la arquitectura que mueve a las empresas líderes del mundo digital sin enredos.