Un negozio online deve sapere quando un pagamento è stato completato. Un CRM deve sapere quando arriva una nuova richiesta dal sito. Esistono due modi di base perché un sistema venga a conoscenza degli eventi di un altro: chiedere regolarmente o ricevere una notifica.
Polling: chiedere regolarmente
Con il polling, il tuo sistema chiede all’altro ogni pochi minuti: «C’è qualcosa di nuovo?». È semplice da realizzare e funziona con quasi ogni servizio dotato di API. Gli svantaggi sono il ritardo - scopri l’evento solo al controllo successivo - e lo spreco: la maggior parte delle richieste non restituisce nulla, ma consuma comunque limiti e risorse.
Webhook: ricevere una notifica
Con un webhook, l’altro sistema invia un messaggio al tuo indirizzo non appena succede qualcosa. Le informazioni arrivano quasi all’istante e non ci sono richieste a vuoto. Il prezzo è la responsabilità: il tuo endpoint deve essere raggiungibile, verificare che il messaggio provenga davvero dal partner e gestirlo correttamente anche se lo stesso messaggio arriva due volte.
Come rendere affidabili i webhook
Verifica la firma o il segreto che il fornitore allega a ogni messaggio, così nessuno può inviarti eventi falsi. Rispondi in fretta ed esegui l’elaborazione pesante in background, altrimenti il fornitore può considerare fallita la consegna e ripeterla. Salva un identificativo di ogni evento elaborato e ignora i duplicati. Tieni un registro dei messaggi ricevuti per poter analizzare i problemi.
La combinazione pratica
In pratica le integrazioni più solide combinano entrambi gli approcci. I webhook consegnano gli eventi in tempo reale, e un controllo periodico - ad esempio ogni ora o ogni notte - confronta lo stato su entrambi i lati e recupera ciò che è sfuggito durante un aggiornamento del server o un disservizio del fornitore.
In breve
Il polling è semplice ma più lento e dispendioso; i webhook sono veloci ma richiedono attenzione. Usa i webhook per la velocità, proteggili con firme e controllo dei duplicati e aggiungi una riconciliazione periodica perché nessun evento vada perso.