Qual è il modo più elegante per gestire un loop tra due sistemi integrati da eventi webhook?

2

Quindi sto sviluppando questo piccolo motore che fa un'integrazione remota tra due sistemi per sincronizzare i dati, entrambi i sistemi hanno webhook per creare & aggiorna gli eventi ed entrambi hanno le API (uno è REST uno è XML), quindi è un'integrazione basata sugli eventi piuttosto che un tipico batch.

Il mio problema è che se il sistema A crea una voce e spara un webhook che il motore cattura, se il motore non lo trova, crea una voce comparabile nel sistema B che attiva un webhook di creazione, che quindi il motore cattura come una nuova richiesta ... e vedi il mio problema.

Lo stesso scenario potrebbe accadere per un webhook di aggiornamento (in realtà questo è più probabile che accada).

Immagino che non sia la prima persona sulla terra ad affrontare questo problema, quindi mi chiedo quale sarebbe un modo elegante di gestire questo dato che non posso modificare le API né iniettare metadati personalizzati nel messaggi che potrebbero aiutarmi a catturare il ciclo.

FYI, l'integrazione è tra due sistemi di rilevamento dei problemi.

    
posta dukeofgaming 02.12.2013 - 07:24
fonte

1 risposta

1

Aggiungi un identificatore univoco globale (GUID) a ogni problema. Assicurati che entrambi i sistemi seguano questi ID. Quando un sistema riceve un evento "Nuovo problema aggiunto", prima cercherà il GUID - se esiste nel proprio database, allora può ignorare l'evento.

    
risposta data 10.12.2013 - 09:00
fonte

Leggi altre domande sui tag