Webhooks vs. polling
Dit artikel vergelijkt webhooks met polling, analyseert de voor- en nadelen van elke benadering en bespreekt wanneer welke te gebruiken.
Dit artikel vergelijkt webhooks met polling, analyseert de voor- en nadelen van elke benadering en bespreekt wanneer welke te gebruiken.
Wanneer we webapps bouwen, hebben we vaak meerdere services. In de overgrote meerderheid van de gevallen bestaan ze uit veel verschillende webservices die samenwerken. In dit type webapp dat bestaat uit meerdere services, moet elke ontwikkelaar nadenken over hoe gegevens worden verzonden.
Als het gaat om het oplossen van dit probleem, zijn er twee benaderingen mainstream geworden: webhooks en polling. Elke methode biedt een unieke manier om gegevens van de ene service naar de andere op te halen en te leveren. Het kiezen van de ene boven de andere kan een grote impact hebben op de efficiëntie, realtime mogelijkheden en algehele gebruikerservaring van je applicatie. Dit artikel vergelijkt webhooks met polling, analyseert de voor- en nadelen van elke benadering en bespreekt wanneer welke te gebruiken.
Polling (vaak API-polling genoemd) is het proces waarbij een client op regelmatige tijdstippen specifieke gegevens opvraagt (laten we zeggen, elke x seconden), en de server reageert met de gevraagde gegevens.
Zie het als het regelmatig vragen: “Zijn er nieuwe gegevens?” Polling kan worden geïmplementeerd via HTTP-verzoeken, waarbij de client een GET-verzoek naar de server stuurt en de server reageert met de gevraagde gegevens.
Stel je voor dat John een AI-documentatieproduct genaamd Doc.AI heeft gebouwd en Logto gebruikt voor gebruikersidentiteitsbeheer.
Frank is een gebruiker die zich heeft aangemeld bij het product van John en zijn eigen persoonlijke account heeft aangemaakt. Op een dag voegt Frank zich bij een werkruimte die door zijn vriend David is gemaakt. Op dat moment wil John Frank een e-mail sturen om hem te vragen Multi-Factor Authenticatie (MFA) in te schakelen om zijn accountbeveiliging te verbeteren voordat John hem toegang geeft tot extra gevoelige bronnen.
De backend van het product van John moet constant relevante API's peilen om te weten wanneer Frank zich bij de werkruimte van David voegt.
Een webhook (d.w.z. "HTTP-callback") is een mechanisme voor realtime gegevenscommunicatie, waarbij een server gegevens naar een client stuurt wanneer een gebeurtenis plaatsvindt. In plaats van dat een client gegevens opvraagt, stuurt een webhook deze naar de client elke keer dat er een update is.
Zie het als een inbox voor je applicatie. Wanneer bepaalde gebeurtenissen plaatsvinden - bijvoorbeeld wanneer een nieuwe gebruiker zich aanmeldt of een betaling wordt gedaan - zal een webhook een bericht in de inbox plaatsen om je applicatie te laten weten wat er gaande is.
Laten we verdergaan met ons Doc.AI-voorbeeld dat we eerder gebruikten om polling uit te leggen. Hier is hoe het sequentiediagram eruit zou zien als we webhooks gebruiken om te weten of Frank zich bij de werkruimte van David heeft gevoegd:
Op basis van de mechanismen van polling en webhooks is de gangbare praktijk om polling alleen te kiezen wanneer de gegevens vaak worden bijgewerkt en de realtime vereiste voor gegevens niet streng is. In andere gevallen zouden webhooks een betere keuze zijn.
Echter, bij het kiezen om webhooks te gebruiken, moeten ontwikkelaars aandacht besteden aan de volgende overwegingen:
Logto, als een enorm populaire gebruikersidentificatie-oplossing, biedt rijke webhookscènes en uitstekende beveiliging. Door Logto te gebruiken als je productenidentiteitssysteem, kan het gemakkelijk worden geïntegreerd en passen bij verschillende toepassingsscènes.