Strategie di mitigazione delle race condition dei webhook

Ciao a tutti! :waving_hand:

Sto lavorando alla creazione di una sincronizzazione bidirezionale tra Discourse e Discord. Dal lato Discourse, sto utilizzando i webhook per gli eventi di argomenti e post (creati, modificati, eliminati, recuperati) per inoltrare gli aggiornamenti ai corrispondenti canali Discord. L’altra direzione è gestita utilizzando un bot creato con discord.js.

Ho riscontrato alcuni problemi nel far gestire le cose in modo pulito dal mio middleware, principalmente a causa di una race condition tra la ricezione dei webhook di argomenti e post.

Mi piacerebbe ricevere qualche consiglio su come gestire al meglio questa situazione. Al momento, sto valutando di abbandonare completamente i webhook degli argomenti e basare tutto sugli eventi dei post (utilizzando topic_id come unificatore). Detto questo, preferirei trovare un modo per far funzionare la mia configurazione attuale piuttosto che riscrivere tutto da zero.

Qualsiasi intuizione o suggerimento sarebbe molto apprezzato! :folded_hands:

3 Mi Piace

Ho appena deciso di recuperare i valori e compilare alcuni dati prima di avere l’argomento nel mio database

1 Mi Piace

È che stai ricevendo la webhook post prima della webhook topic? Data la natura asincrona di questo, potrebbe effettivamente accadere.

2 Mi Piace

Così stavo facendo sia i webhook per gli argomenti che per i post, ma sono passato a fare solo i webhook per i post e a usare ciò che è disponibile in quelli per collegare i thread agli argomenti.

2 Mi Piace

Va bene, è un buon cambiamento, renderà il tuo sistema molto più affidabile e, come hai detto, puoi sempre ricorrere alle richieste API per arricchire i dati.

2 Mi Piace