Notificar a varios canales sin que un fallo tumbe al resto

2026年8月15日1 次浏览来源:Dev.to阅读原文

Quieres mandar la misma notificación a varios sitios: Slack, Discord, un webhook, un email.

La primera versión es un de tres líneas: Y funciona en las demos.

Hasta que un día Discord devuelve un 500, lanza, y el email y el Slack que iban detrás nunca salen.

Peor: te enteras por el usuario que no recibió la alerta, no por un log.

Dos cosas fallan en ese : No aísla.

La primera excepción corta el reparto entero.

No reporta.

O cada canal se traga su error en un disperso, o el fallo se pierde.

La forma correcta Aísla cada canal y recoge el resultado.

Lo empaqueté como —Python puro, sin dependencias— porque lo reescribía en cada proyecto: llama a todos los canales habilitados, captura la excepción de cada uno por separado, y sigue con el siguiente.

Un Discord caído ya no impide que salga el email.

Al final tienes un reporte: Encender y apagar sin ramificar el código Cada canal tiene un interruptor, en runtime o por variable de entorno: Esto importa más de lo que parece: separa qué canales existen de cuáles están activos hoy, sin comentar código ni meter por todos lados.

Apagas un canal problemático con una variable de entorno, no con un despliegue.

Escalar, pero después de intentarlo todo A veces sí quieres que un fallo se propague.

La diferencia está en cuándo: Al revés que el ingenuo, que aborta en el primero.

Intentas todos los canales, y solo entonces decides si el conjunto fue un fracaso.

De dónde viene Salió de un agente que publicaba en varias redes a la vez.

Extraje solo la fontanería: qué se publica y a quién es la lógica de cada aplicación; el cómo repartir con aislamiento y reporte es genérico, y sirve igual para notificaciones, alertas o webhooks.

Por eso es una librería, no un .

Código y tests (centrados en el aislamiento de fallos, verificados por mutación): github.com/isazajuancarlos/fanout-broadcast.

分享
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

About

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools