
API uitval opvangen: wat als een gekoppeld systeem offline is?
API uitval opvangen is iets waar je pas over nadenkt als het misgaat. Een boekhoudpakket is tijdelijk niet bereikbaar, een webshop staat in onderhoud of een internetverbinding valt weg. Als je systemen aan elkaar gekoppeld hebt, kan zo’n moment zorgen voor verdwenen bestellingen of dubbele data. In dit artikel leggen we uit hoe dat komt en hoe je een koppeling zo bouwt dat tijdelijke uitval geen blijvend probleem wordt.
Wat is een API en waarom kan die uitvallen
Een API, kort voor application programming interface, is de verbinding waarmee twee systemen gegevens uitwisselen. Denk aan je webshop die een nieuwe order doorstuurt naar je boekhoudpakket. Die verbinding loopt via internet, en net als elke internetverbinding kan die tijdelijk wegvallen.
Oorzaken zijn bijvoorbeeld:
- Onderhoud aan het systeem waarmee je koppelt
- Een storing bij de leverancier van dat systeem
- Een tijdelijke netwerkstoring
- Een limiet op het aantal verzoeken per minuut, ook wel rate limiting genoemd
Dit zijn geen uitzonderlijke situaties. Elk systeem dat via internet werkt, heeft weleens een moment van onbereikbaarheid. De vraag is niet of dat gebeurt, maar wat je koppeling doet op zo’n moment.
Wat er misgaat zonder goede foutafhandeling
Een koppeling die niet is voorbereid op uitval, gaat er vaak stilzwijgend van uit dat het andere systeem altijd reageert. Gebeurt dat niet, dan kunnen er twee dingen misgaan.
Gegevens gaan verloren
Stuurt je webshop een order naar het boekhoudpakket op het moment dat dat pakket niet bereikbaar is, dan kan die order zonder foutafhandeling gewoon verdwijnen. Niemand krijgt een melding en de factuur wordt nooit aangemaakt.
Gegevens komen dubbel binnen
Soms probeert een systeem een mislukt verzoek automatisch opnieuw te versturen, zonder te controleren of het eerste verzoek toch is aangekomen. Het gevolg is een dubbele order, een dubbele factuur of dubbele voorraadmutatie.
Beide situaties leiden tot handwerk: iemand moet alsnog controleren en corrigeren wat de koppeling had moeten doen.
Hoe je een koppeling bouwt die uitval opvangt
Bij InDiv bouwen we koppelingen met foutafhandeling als standaardonderdeel, niet als uitzondering achteraf. Dat werkt met een aantal vaste technieken.
Een wachtrij voor berichten
In plaats van gegevens direct en rechtstreeks te versturen, zetten we een bericht eerst in een wachtrij. Is het doelsysteem niet bereikbaar, dan blijft het bericht in de wachtrij staan tot het weer wel lukt. Er gaat niets verloren, het duurt alleen even langer voordat het is verwerkt.
Opnieuw proberen met beleid
Een mislukt verzoek wordt niet oneindig of direct opnieuw geprobeerd. We bouwen in hoe vaak en met welke tussenpozen een nieuwe poging wordt gedaan. Zo voorkom je dat een tijdelijk overbelast systeem nog verder overbelast raakt door herhaalde pogingen.
Controleren op dubbele verwerking
Elk bericht krijgt een uniek kenmerk. Voordat een systeem een order of mutatie verwerkt, controleert het of dat kenmerk al eerder is langsgekomen. Zo voorkom je dubbele orders, ook als een verzoek per ongeluk twee keer binnenkomt.
Loggen en melden
Elke mislukte poging wordt vastgelegd. Blijft een systeem langere tijd onbereikbaar, dan komt er een melding bij de juiste persoon, zodat het niet onopgemerkt blijft liggen.
Wat dit betekent voor jouw bedrijfsprocessen
Als je nadenkt over systemen koppelen, is de vraag “wat als het misgaat” net zo belangrijk als “wat als het werkt”. Een koppeling die alleen is getest in een situatie waarin alles goed gaat, geeft een vals gevoel van zekerheid. Juist bij processen met geld, voorraad of klantgegevens is het belangrijk dat een storing in een ander systeem niet meteen tot fouten in jouw administratie leidt.
Dit geldt voor uiteenlopende koppelingen: tussen een webshop en boekhoudpakket, tussen een CRM en een marketingtool, of tussen een voorraadsysteem en een marktplaats. Overal waar twee systemen via een API met elkaar praten, kan tijdelijke uitval voorkomen.
Volgende stap
Heb je systemen die al gekoppeld zijn, maar weet je niet zeker wat er gebeurt bij een storing? Of overweeg je een nieuwe koppeling en wil je dat die vanaf het begin goed tegen uitval bestand is? Neem contact op met InDiv. We kijken samen naar je huidige situatie en leggen uit welke aanpak bij jullie processen past. Lees ook meer over maatwerk webapplicaties en systemen koppelen op onze website.