Descripción del proyecto
TraducidoLa fiabilidad es clave aquí, así que estoy más preocupado por las fallas de los suscriptores. Cada intento de entrega debe estar firmado para que el destinatario pueda verificar que proviene de nosotros, llevar una marca de tiempo y un ID de entrega único para proteger contra duplicados, y en caso de error, reintentar con retroceso exponencial y jitter hasta un límite configurable, luego pasar al estado de carta muerta. Necesitamos límites de concurrencia por punto final para que un suscriptor abrumado no consuma recursos del resto, y claves de idempotencia para que un reintento nunca cause un duplicado en el lado del destinatario. Para ser claro sobre el alcance: esto no es una cola de mensajes general para tareas internas y no es un proxy de puerta de enlace API que maneja tráfico entrante. Se trata de entregar de manera confiable webhooks salientes a terceros, y la cola es solo un mecanismo interno, no el resultado.
También necesito observabilidad y gestión que pueda entregar al soporte y a los socios. Cada intento debe registrarse en un registro de entregas con solicitud, código de respuesta, latencia y conteo de reintentos, buscable por evento, punto final y estado. Debe haber una forma de reintentar manualmente entregas fallidas o en estado de carta muerta, pausar un punto final y reanudarlo, y rotar secretos de firma sin tiempo de inactividad. Por favor, trate esto como infraestructura de producción — con documentación clara y pruebas, no un prototipo.
— Punto final para recibir eventos entrantes con validación y persistencia
— Modelo de suscripción: emparejando tipos de eventos con puntos finales de suscriptores
— Cargas firmadas con marca de tiempo, ID de entrega y protección contra duplicados
— Reintentos con retroceso exponencial, jitter y estado de carta muerta
— Límites de concurrencia por punto final y manejo de idempotencia
— Registro de entregas con búsqueda, reintento manual y pausa de punto final
— Rotación de secretos, documentación y pruebas automáticas