Webhook vs polling: due sistemi in tempo reale
Webhook vs polling: perché chiedere ogni cinque minuti è spreco, perché conta la firma e cosa deve succedere se il tuo server non risponde.
Due sistemi che devono lavorare insieme hanno due strade. O il primo chiede di continuo — «c’è qualcosa di nuovo?» — oppure il secondo si fa vivo quando qualcosa di nuovo c’è. La prima si chiama polling, la seconda webhook. La differenza sembra tecnica e decide, nella pratica, se un’integrazione lavora in silenzio o chiede attenzione tutti i giorni.
Perché il polling è la metà peggiore
Con il polling il tuo sistema chiede a intervalli fissi. Ogni cinque minuti, ogni ora, ogni notte. Ha tre difetti fastidiosi.
È quasi sempre inutile: di 288 chiamate al giorno, forse dodici portano qualcosa. Le altre 276 consumano chiamate che vanno sul tuo limite.
È lo stesso troppo lenta: chi chiede ogni cinque minuti viene a sapere le cose con due minuti e mezzo di ritardo medio. Per un ordine che va in magazzino spesso non cambia niente. Per un incasso che sblocca una spedizione, sì.
Ed è fragile nei dettagli: bisogna ricordarsi fino a dove si è già letto. Se quel segnaposto si sposta — un’esecuzione interrotta, un fuso orario calcolato diversamente — mancano dei dati e non se ne accorge nessuno.
Cos’è davvero un webhook
Un webhook è un indirizzo che registri. Quando succede qualcosa — nasce un documento, una fattura cambia stato — il programma manda un messaggio a quell’indirizzo. Niente domande, niente segnaposto, niente giri a vuoto.
Perché regga nel funzionamento quotidiano servono tre cose. Chiedile prima di comprare.
1. Una firma, altrimenti si crede a chiunque
Il tuo indirizzo webhook è raggiungibile da fuori. Senza verifica, chi lo conosce può mandare un messaggio inventato — e il tuo sistema crea un ordine inventato.
Per questo ogni consegna viene firmata: chi la manda calcola una somma di controllo dal contenuto e da un segreto condiviso, e la spedisce insieme. Il tuo sistema rifà il conto. Se non torna, il messaggio si butta.
Un dettaglio che spesso manca: la marca temporale deve stare dentro il contenuto firmato. Altrimenti qualcuno può intercettare un messaggio vero e rispedirlo più tardi — la firma torna ancora. Con la marca temporale firmata, la ripetizione si vede.
2. Ritentativi che si allargano
Prima o poi il tuo server non risponde. Un riavvio, un certificato, la rete: capita. La domanda è cosa fa il mittente in quel momento.
Riprovare subito non serve: chi sta riavviando non c’è nemmeno un secondo dopo. Hanno senso intervalli crescenti — subito, dopo 30 secondi, dopo 5 minuti, dopo mezz’ora, dopo due ore. Così si supera sia il riavvio breve sia il guasto lungo.
E ancora: un errore nella tua richiesta (formato sbagliato, chiave revocata) non si ripete. Mandare cinque volte la stessa cosa non aggiusta un formato: nasconde soltanto l’errore vero.
3. Una fine, quando non ascolta più nessuno
Se un indirizzo smette di rispondere per sempre, il mittente a un certo punto deve fermarsi e dirlo. Altrimenti le consegne finiscono nel vuoto finché qualcuno se ne accorge — di solito settimane dopo, quando mancano dei dati.
In Blina Desk un indirizzo viene sospeso dopo cinque consegne esaurite di fila e va riattivato a mano. «Esaurita» vuol dire che tutti i ritentativi sono finiti: un singolo intoppo non sospende niente.
Cosa deve saper fare chi riceve
Anche l’altra parte ha i suoi doveri, e due si dimenticano regolarmente.
Rispondere subito. Prendi il messaggio, conferma, e poi elabora. Chi prima calcola e poi risponde finisce nei tempi scaduti e si ritrova lo stesso messaggio un’altra volta.
Sopportare i doppioni. Che è proprio il motivo per cui lo stesso messaggio può arrivare due volte. Chi riceve deve reggerlo senza creare l’ordine in doppio: ogni consegna porta un identificativo, e quello o l’hai già visto o no.
La regola pratica
Usa i webhook per tutto ciò che deve succedere in tempi brevi, e tieni un allineamento notturno come rete di sotto. Il webhook tiene i sistemi a passo; l’allineamento recupera quello che è rimasto indietro in una notte con la linea ballerina. Insieme fanno un’integrazione a cui si smette di pensare — e per un’integrazione è il complimento più alto che ci sia.