¿Qué es la Idempotencia?
En el contexto de webhooks, la idempotencia es la propiedad de un endpoint que asegura que procese eventos duplicados exactamente una vez. La mayoría de los emisores de webhooks, incluido Trophy, operan con una garantía de entrega “al menos una vez”. Esto significa que eventualmente puedes recibir el mismo webhook varias veces y tu código necesita manejar esos escenarios sin consecuencias no deseadas. Por ejemplo, si tu manejador de webhooks está suscrito a eventosleaderboard.finished y envía tarjetas de regalo a los usuarios que quedan en el top 10, entonces tu código necesita enviar las tarjetas de regalo solo una vez incluso si recibe el mismo evento de Trophy varias veces.
Implementar la Idempotencia de Webhooks
Hacer que tus manejadores de webhooks sean más robustos es trivial en la mayoría de los casos. Tomemos el ejemplo de la tarjeta de regalo anterior. Después de enviar una tarjeta de regalo a un usuario, tu código podría insertar un registro en tu base de datos que represente que la tarjeta de regalo ha sido enviada al usuario.if que verifique si la tarjeta de regalo ya ha sido enviada al usuario.