Patrón Observer — Ejemplo Práctico

PUBLICADO: 2026-08-16
AUTOR: MANUEL PRIETO
Patrones de Diseño

El patrón Observer define un mecanismo de suscripción para notificar eventos a múltiples objetos interesados, sin acoplar al emisor con cada uno de ellos.

1. El Problema de Partida

Cuando se publica un nuevo artículo en content/knowledge/, hacen falta varias acciones independientes: revalidar la caché ISR de las rutas afectadas, registrar el evento en analítica interna y (opcionalmente) avisar por Slack. Meter las tres llamadas seguidas dentro de la misma función de publicación mezcla responsabilidades y obliga a tocar ese código cada vez que se añade un nuevo consumidor del evento.

2. La Solución Observer

Un PublishEventEmitter mantiene la lista de suscriptores; el publicador solo emite postPublished, sin saber quién ni cuántos escuchan.

3. Uso al publicar

4. Ventajas

  • Añadir un consumidor no toca publishPost: basta con un nuevo subscribe().
  • Cada observador falla de forma aislada: un error en el webhook de Slack no bloquea la revalidación de caché.
  • Trazabilidad clara: todos los efectos secundarios de "publicar" viven en subscribers.js, no dispersos en la lógica de negocio.