Een koppeling die stil faalt is erger dan geen koppeling

Een koppeling die stopt zonder melding, merk je pas als een klant belt. Zo bouw je koppelingen die laten weten wanneer er iets misgaat.

Als een koppeling ontbreekt, weet je dat. Je team zet orders met de hand door en houdt de voorraad zelf bij. Dat kost tijd, maar niemand wordt verrast. Een koppeling die stil faalt, is erger. Iedereen gaat ervan uit dat het werkt, tot een klant belt dat zijn bestelling na een week nog niet is verzonden.

Hoe een koppeling stil faalt

Koppelingen falen zelden met een duidelijke foutmelding. Meestal gaat het zo:

  • Een API-sleutel verloopt of een wachtwoord wordt gewijzigd, en de koppeling krijgt geen toegang meer.
  • Een leverancier verandert het formaat van een bestand, en een kolom wordt niet meer gelezen.
  • Een cronjob stopt na een serverupdate, en niemand ziet dat hij niet meer draait.
  • De andere partij is een uur niet bereikbaar, en de orders uit dat uur worden nooit opnieuw verstuurd.
  • Eén order valt af op één veld, bijvoorbeeld een postcode met een spatie, en blijft hangen.

In al deze gevallen draait de shop gewoon door. Bezoekers bestellen en betalingen komen binnen. Alleen de stap daarna gebeurt niet.

Een koppeling is pas af als je weet wanneer hij niet werkt.

Drie vragen bij elke koppeling

Ziet iemand dat het misgaat? Een fout hoort te leiden tot een melding bij de juiste persoon. Niet in een logbestand op de server, maar in Slack of in de mailbox van het team dat er iets mee kan. Het magazijn heeft niets aan een melding over een API-sleutel, de developer niets aan een melding over een ontbrekend artikel.

Ziet iemand dat er niets gebeurt? Dit is de lastigste. Een koppeling die niet draait, geeft geen fout. Daarom controleren we ook of er wel iets gebeurt: zijn er de laatste uren orders verstuurd, is de voorraad vandaag bijgewerkt? Komt er geen teken van leven, dan volgt een melding.

Kan het team zelf zien wat er is gebeurd? Maak elke run zichtbaar in de admin van de shop: wat is er verwerkt, wat niet en waarom. Dan kan klantenservice een vraag beantwoorden zonder een developer te bellen. Bij Chilly werkt de voorraadsuite zo: het team ziet per run wat er is bijgewerkt en waar een feed hapert.

Opnieuw proberen, maar niet eindeloos

Veel fouten zijn tijdelijk. Een server die even niet antwoordt, is een minuut later weer bereikbaar. Een goede koppeling probeert het daarom een paar keer opnieuw, met wat tijd ertussen. Lukt het dan nog niet, dan stopt hij en meldt hij het. Zo voorkom je dat één korte storing honderd meldingen geeft, en dat een echte fout onopgemerkt blijft.

Opnieuw proberen moet wel veilig zijn. Een order mag niet twee keer bij het magazijn aankomen omdat de eerste poging toch gelukt bleek.

Wat je hieruit meeneemt

  1. Vraag bij elke koppeling: wie krijgt een melding als het misgaat, en wie als er niets gebeurt?
  2. Maak elke run zichtbaar voor het team dat ermee werkt, niet alleen voor de developer.
  3. Laat tijdelijke fouten automatisch opnieuw proberen, en meld wat daarna nog misgaat.

Benieuwd hoe je shop er technisch voor staat?

Laat een scan doen, vraag ons om advies of plan een vrijblijvende kennismaking.