SelSup Developers

Flujo de trabajo de extremo a extremo · Guías

Webhooks y integración basada en eventos

Configuración de conexión web saliente, un receptor seguro, protección de duplicados y recuperación de eventos perdidos a través de API.

5 seccionesGuía para desarrolladores

Los webhooks reducen la latencia de cambio pero no reemplazan la fuente de la verdad.

Integras y servicios de backend basados en eventos

01

Definición de eventos y propiedad

Comience con un evento de negocio, como un pedido nuevo o cambiado, un cambio de stock o un cambio en el precio. Defina la acción del propietario de datos y el receptor para cada evento.

Mantenga la carga útil original de la conexión web separada de su modelo normalizado durante un período limitado.

Un nuevo campo opcional no debe romper el análisis de una estructura de eventos conocida.

02

Construir un receptor HTTP seguro

  1. 1

    Constrangir la solicitud

    Acepta sólo los métodos y tipos de contenido requeridos, imponga un límite de tamaño corporal y utilice un corto tiempo de lectura.

  2. 2

    Verificar la fuente

    Utilice un secreto en una URL no enumerada o encabezado configurable y añadir API-gateway filtrado. No confíe en el usuario-agente solo.

  3. 3

    Permanezca el evento

    Almacenar la carga útil y la clave de deduplicación en una transacción, luego devolver una respuesta exitosa rápidamente.

  4. 4

    Proceso sincronizado

    Llame al ERP, WMS y otros sistemas desde una cola en lugar de la solicitud de HTTP entrante.

!
Mantenga corta la ruta de respuesta

Una respuesta lenta aumenta el tiempo de espera y el riesgo de entrega duplicada.

Modelo mínimo del receptor · JavaScript
app.post('/selsup/events/secret-path', async (request, response) => {
  const eventKey = createStableEventKey(request.body);
  const inserted = await inbox.insertOnce(eventKey, request.body);
  response.sendStatus(inserted ? 202 : 200);
});

03

Duplicados, ordenados y deduplicados

Trate la entrega de duplicados como normal. Utilice un identificador de evento estable cuando esté presente; de lo contrario, deriva una clave del tipo de entidad, el id de la entidad y el tiempo de modificación.

Los eventos pueden llegar fuera de orden. Comparar modificadoDate antes de escribir o recargar la entidad actual a través de API.

Regresa el estado de éxito de un evento ya procesado. De lo contrario, el remitente puede continuar intentando el trabajo terminado.

i
Modelo de la bandeja de entrada

Una tabla de eventos entrantes con clave de evento única, estado y número de intentos simplifica la deduplicación, reproducción y auditoría.

04

Recuperación de los eventos perdidos

Ejecutar la reconciliación periódica API incluso cuando los webhooks están sanos. Utilice modificadoDate con superposición para pedidos y un almacén o cambio de SKU para el inventario.

Después de la falta de tiempo del receptor, agota la bandeja de entrada y solicita cambios para la ventana de apagón completa. La misma lógica de deduplicación debe combinar los resultados webhook y API.

05

Gestionar el ciclo de vida de la conexión web

Exponer la URL activa, el tipo de evento, el último recibo exitoso y el último error en su integración. Esto permite el diagnóstico sin acceso directo al registro del servidor.

Antes de reemplazar o eliminar una URL, compruebe si el nuevo receptor acepta eventos.