El middleware de Next.js se ubica entre la solicitud entrante y tu aplicacion. Se ejecuta antes de que la pagina renderice, antes de que la API route se ejecute, antes de cualquier otra cosa. Eso lo convierte en el punto de intercepcion mas poderoso de una aplicacion Next.js.

Como funciona el middleware de Next.js

Es un unico archivo: middleware.ts en la raiz de tu proyecto. Exporta una funcion que recibe un NextRequest y debe retornar un NextResponse. Se ejecuta en el Edge Runtime, no en Node.js.

Patron 1: Guards de autenticacion

En lugar de verificar auth en cada componente de pagina o API route, centralizalo en middleware. Verifica el token de sesion en las cookies y redirige a /login si no existe o expiro.

Patron 2: Redirects por geolocalizacion

Cuando tu app se despliega en Vercel o Cloudflare, el edge provee datos de geolocalizacion automaticamente via request.geo. Podes usarlo para redirects de locale, contenido regional o compliance.

Patron 3: Rate Limiting

Rate limiting en middleware protege tus API routes del abuso antes de que el request llegue al handler. Para deployments distribuidos, usa Upstash Rate Limit u otra solucion Redis compatible con edge.

Patron 4: A/B Testing con cookies

Middleware puede asignar usuarios a grupos experimentales antes de que la pagina renderice, habilitando A/B testing del lado del servidor sin layout shift.

Lo que middleware NO puede hacer

  • Sin acceso a base de datos con drivers nativos
  • Sin acceso al file system
  • Sin operaciones de larga duracion
  • No puede medir el tiempo de respuesta de tus API routes

Donde instrumentation.ts complementa al middleware

Middleware opera en el edge antes del request. El hook de instrumentacion corre en el runtime de Node.js cuando el servidor arranca. Esta disenado especificamente para observabilidad: tracing, logging y monitoreo.

Pensa en middleware como el portero en la puerta e instrumentacion como las camaras de seguridad adentro. Necesitas ambos para el panorama completo.

Nurbak Watch usa el hook de instrumentacion para monitorear cada API route desde dentro del servidor. 5 lineas en instrumentation.ts, alertas via Slack, email o WhatsApp en menos de 10 segundos. $29/mes (gratis durante la beta).

Articulos relacionados