Acerca del servicio
TraducidoLa mayoría de las integraciones fallan en silencio. Un servicio dispara un evento, el receptor está reiniciando, nadie intenta de nuevo, y te enteras de que el cliente nunca recibió una confirmación. Construyo la capa que hace que este intercambio sea aburrido y predecible: un punto de recepción para eventos, una cola detrás de él, enrutamiento para notificaciones, y un registro de entregas que responde a la pregunta "¿llegó?" sin conjeturas.
El trabajo comienza con el mapa de eventos, no con el código. Recorremos lo que realmente sucede dentro de tus sistemas y seleccionamos lo que merece una reacción: un nuevo pedido, un pago fallido, un cambio de estado, un documento firmado. Para cada uno, anoto quién tiene que enterarse, con qué rapidez y a través de qué canal. La mitad del ruido futuro desaparece en este paso, porque hasta ahora nadie había preguntado si un evento merecía un mensaje en absoluto.
Luego, la mecánica. Un webhook entrante sin verificación de firma no es aceptado; de lo contrario, cualquiera puede enviarte un evento, y uno falsificado cuesta mucho más que uno perdido. Los eventos aceptados van a una cola y se reintentan con intervalos crecientes mientras el lado opuesto no está disponible. Las repeticiones son normales aquí, así que cada evento lleva una clave, y una segunda copia de la misma clave no cambia nada. Los secretos y tokens se mantienen fuera del código y nunca llegan al registro. Las notificaciones en sí llevan un enlace y un número y nada más: los datos personales y el contenido del documento no se colocan en un chat de trabajo que la mitad de la empresa puede desplazar.
Lo que incluye el trabajo:
— un mapa de eventos con una razón para cada uno;
— recepción de webhook con verificaciones de firma y rechazo de cualquier cosa no firmada;
— una cola con reintentos y un backlog visible de eventos no procesados;
— protección contra el procesamiento del mismo evento dos veces;
— enrutamiento a correo y al mensajero del equipo, por evento y por destinatario;
— plantillas de mensajes en lenguaje sencillo, sin volcado de carga útil cruda;
— un registro de entregas buscable por evento, con un reenvío manual;
— monitoreo de la cola que avisa cuando el backlog deja de drenarse;
— una breve guía escrita para el equipo.
El trabajo comienza con el mapa de eventos, no con el código. Recorremos lo que realmente sucede dentro de tus sistemas y seleccionamos lo que merece una reacción: un nuevo pedido, un pago fallido, un cambio de estado, un documento firmado. Para cada uno, anoto quién tiene que enterarse, con qué rapidez y a través de qué canal. La mitad del ruido futuro desaparece en este paso, porque hasta ahora nadie había preguntado si un evento merecía un mensaje en absoluto.
Luego, la mecánica. Un webhook entrante sin verificación de firma no es aceptado; de lo contrario, cualquiera puede enviarte un evento, y uno falsificado cuesta mucho más que uno perdido. Los eventos aceptados van a una cola y se reintentan con intervalos crecientes mientras el lado opuesto no está disponible. Las repeticiones son normales aquí, así que cada evento lleva una clave, y una segunda copia de la misma clave no cambia nada. Los secretos y tokens se mantienen fuera del código y nunca llegan al registro. Las notificaciones en sí llevan un enlace y un número y nada más: los datos personales y el contenido del documento no se colocan en un chat de trabajo que la mitad de la empresa puede desplazar.
Lo que incluye el trabajo:
— un mapa de eventos con una razón para cada uno;
— recepción de webhook con verificaciones de firma y rechazo de cualquier cosa no firmada;
— una cola con reintentos y un backlog visible de eventos no procesados;
— protección contra el procesamiento del mismo evento dos veces;
— enrutamiento a correo y al mensajero del equipo, por evento y por destinatario;
— plantillas de mensajes en lenguaje sencillo, sin volcado de carga útil cruda;
— un registro de entregas buscable por evento, con un reenvío manual;
— monitoreo de la cola que avisa cuando el backlog deja de drenarse;
— una breve guía escrita para el equipo.