Estrategias de mitigación de condiciones de carrera de Webhook

¡Hola a todos! :waving_hand:

Estoy trabajando en la creación de una sincronización bidireccional entre Discourse y Discord. Por el lado de Discourse, estoy utilizando webhooks para eventos de temas y publicaciones (creados, editados, eliminados, recuperados) para transmitir actualizaciones a los canales correspondientes de Discord. La otra dirección se maneja utilizando un bot creado con discord.js.

He estado encontrando algunos problemas para que mi middleware maneje las cosas de manera limpia, principalmente debido a una condición de carrera entre cuándo se reciben los webhooks de temas y publicaciones.

Me encantaría recibir algunos consejos sobre la mejor manera de manejar esto. En este momento, estoy considerando eliminar por completo los webhooks de temas y basar todo en torno a los eventos de publicación (usando topic_id como unificador). Dicho esto, preferiría encontrar una manera de hacer que mi configuración actual funcione en lugar de reescribir todo desde cero.

¡Cualquier información o sugerencia sería muy apreciada! :folded_hands:

3 Me gusta

Acabo de decidir obtener los valores y completar algunos datos antes de tener el tema en mi base de datos.

1 me gusta

¿Es esto que recibes el webhook de post antes que el webhook de topic? Dada la naturaleza asíncrona de eso, puede suceder.

2 Me gusta

Así que estaba haciendo webhooks de temas y publicaciones, pero cambié a solo webhooks de publicaciones y uso lo que está disponible en ellos para vincular hilos <> temas.

2 Me gusta

Ese es un buen cambio, hará que su sistema sea mucho más confiable y, como usted dijo, siempre puede recurrir a las solicitudes de API para enriquecer los datos.

2 Me gusta