Een workflow maakt een record aan in een extern systeem, maar loopt vervolgens vast terwijl het op het antwoord wacht. De uitvoering wordt gemarkeerd als mislukt. Een operator klikt op ‘Opnieuw proberen’, waarna het externe systeem opnieuw hetzelfde aanmaakverzoek ontvangt.
Niets in deze reeks vereist een ongebruikelijke onderbreking. Het is een normaal gevolg van het uitvoeren van taken via een netwerk. Wanneer ik n8n-automatiseringen ontwerp, beschouw ik het herhalingsgedrag als onderdeel van de bedrijfslogica van de workflow.
Geef de operatie een stabiele identiteit
Een uitvoerings-ID geeft aan welke poging is uitgevoerd. Dit zegt niet per se iets over de zakelijke transactie. Als de workflow opnieuw wordt gestart, kan het zijn dat bij de nieuwe uitvoering nog steeds wordt geprobeerd dezelfde bestelling te exporteren.
Ik geef de voorkeur aan een bewerkingssleutel die is samengesteld uit de tenant, het bronrecord, de actie en de relevante versie. Het exporteren van een bepaalde revisie van een bestelling zou bijvoorbeeld bij herhaalde pogingen dezelfde sleutel moeten hebben, terwijl het exporteren van een latere revisie een andere sleutel zou moeten hebben.
De sleutel moet worden opgeslagen in een systeem dat onder gelijktijdige verwerking de uniekheid kan waarborgen. Als in afzonderlijke stappen wordt gecontroleerd of een waarde bestaat en deze vervolgens wordt ingevoegd, ontstaat er een race-voorwaarde wanneer twee workers tegelijkertijd van start gaan.
Stel grenzen aan bijwerkingen
Zuivere transformaties zijn doorgaans eenvoudig te herhalen. Het versturen van een bericht, het opstellen van een factuur of het aanpassen van de voorraad vereist een zorgvuldiger afgebakende grens.
Mijn voorkeursvolgorde is om de beoogde bewerking vast te leggen, deze atomair te claimen, de externe service aan te roepen met een idempotentiesleutel (indien ondersteund) en de referentie van de provider vast te leggen. Een time-out leidt tot een onzekere bewerking die moet worden afgestemd; dit mag niet automatisch worden beschouwd als bewijs van een mislukking.
Als de aanbieder geen idempotentie ondersteunt, zoek ik naar een betrouwbare manier om op basis van een externe referentie een zoekopdracht uit te voeren. Wanneer geen van beide opties beschikbaar is, is er wellicht een beoordelingswachtrij nodig in de workflow. Een tweede poging in het blindelings is een zakelijke afweging, vooral wanneer de actie niet eenvoudig ongedaan kan worden gemaakt.
Maak een onderscheid tussen fouten die opnieuw kunnen worden geprobeerd en gegevens die kunnen worden hersteld
Een tijdelijke verbindingsfout kan later mogelijk worden verholpen. Een ontbrekend klant-ID lukt meestal niet. Voor verlopen inloggegevens is mogelijk een operator nodig, terwijl bij een tariefbeperking een wachttijd en een lagere gelijktijdigheid nodig kunnen zijn.
| Mislukking | Reactie op de workflow |
|---|---|
| Tijdelijke servicefout | Beperkte herhalingspogingen met toenemende vertraging en jitter |
| Ongeldig bronrecord | Quarantaine met een begrijpelijke reden voor de validatie |
| Onzekere externe schrijfbewerking | Afstemmen aan de hand van de transactiereferentie |
| Ontbrekende toestemming | Stop de betreffende bewerking en vraag een configuratieherstel aan |
Het herpogingsbeleid moet ook een totaal tijdsbudget hebben. Een geautomatiseerd proces dat dagenlang herhalingspogingen doet, kan een actie uitvoeren op een moment dat de zakelijke context al is veranderd. Oude taken moeten een vervaldatum hebben of opnieuw worden gecontroleerd op geschiktheid.
Zorg dat er voldoende statusinformatie bewaard blijft om verder te gaan
Ik plaats permanente controlepunten op belangrijke bedrijfsgrenzen. Als een export is geslaagd maar de melding is mislukt, moet het herstel zich richten op de melding. Het opnieuw uitvoeren van de volledige workflow vanaf de trigger is alleen handig als elke voorgaande actie veilig kan worden herhaald.
Elk controlepunt moet onderscheid maken tussen werk dat in behandeling is, wordt uitgevoerd, is voltooid, is mislukt of waarvan de status onzeker is. Voor een lopende bewerking is bovendien een lease- of herstelregel nodig, zodat een gecrashte worker deze niet voor altijd in bezit houdt.
Logbestanden moeten de bewerkingssleutel, het pogingsnummer, de externe referentie en de workflowversie bevatten. Ik vermijd het om in elk foutbericht de volledige gegevens van de klant op te nemen wanneer een gecontroleerde referentie het onderzoek kan ondersteunen.
Test de onhandige timing
Voordat ik op een automatisering vertrouw, simuleer ik een storing vlak voor en vlak na de belangrijkste externe actie ervan. Daarnaast voer ik dezelfde invoer twee keer uit en start ik twee pogingen tegelijkertijd.
Uit die controles blijkt meer dan alleen maar dat er weer een succesvolle demonstratie is geweest. Een bruikbare workflow kan duidelijk maken wat er al is gedaan, wat nog onzeker is en welke handeling een operator veilig kan herhalen.
Bijgewerkt op 25 september 2026.