SHIFT >_CODE
← Jurnal

Webhookuri sau polling: cum ar trebui să comunice sistemele

Când un sistem trebuie să afle despre evenimentele din altul, există două abordări de bază. Explicăm diferența pe înțeles și cum faci fiabilă oricare dintre ele.

Un magazin online trebuie să știe când o plată a fost finalizată. Un CRM trebuie să știe când sosește o cerere nouă de pe site. Există două moduri de bază prin care un sistem află ce se întâmplă în altul: să întrebe regulat sau să fie anunțat.

Polling: să întrebi regulat

Cu polling, sistemul tău întreabă celălalt sistem la fiecare câteva minute: „E ceva nou?”. Este simplu de construit și funcționează cu aproape orice serviciu care are API. Dezavantajele sunt întârzierea - afli despre eveniment abia la următoarea verificare - și risipa: majoritatea cererilor nu întorc nimic, dar consumă totuși limite și resurse.

Webhookuri: să fii anunțat

Cu un webhook, celălalt sistem trimite un mesaj la adresa ta imediat ce se întâmplă ceva. Informația ajunge aproape instantaneu și nu există cereri goale. Prețul este responsabilitatea: punctul tău de primire trebuie să fie disponibil, să verifice că mesajul vine cu adevărat de la partener și să-l trateze corect chiar dacă același mesaj sosește de două ori.

Cum faci webhookurile fiabile

Verifică semnătura sau secretul pe care furnizorul îl atașează fiecărui mesaj, ca nimeni să nu-ți poată trimite evenimente false. Răspunde rapid și fă procesarea grea în fundal, altfel furnizorul poate considera livrarea eșuată și o poate repeta. Păstrează un identificator al fiecărui eveniment procesat și ignoră duplicatele. Ține un jurnal al mesajelor primite pentru a putea investiga problemele.

Combinația practică

În practică, cele mai robuste integrări combină ambele abordări. Webhookurile livrează evenimentele în timp real, iar o verificare periodică - de exemplu o dată pe oră sau în fiecare noapte - compară starea de pe ambele părți și recuperează ce s-a pierdut în timpul unei actualizări de server sau al unei pene a furnizorului.

Pe scurt

Polling-ul este simplu, dar mai lent și risipitor; webhookurile sunt rapide, dar cer atenție. Folosește webhookuri pentru viteză, protejează-le cu semnături și verificarea duplicatelor și adaugă o reconciliere periodică pentru ca niciun eveniment să nu se piardă.