De aanwijzing was de schijf, niet het aanmelden

De eerste meldingen kwamen rond 23:10 uur oostkusttijd op 26 juli, volgens Microsofts eigen registratie, en maandagmorgen markeerde de statuspagina van Xbox vier servicegebieden als ernstige storing: account en profiel, winkel en abonnementen, spellen, en apps en mobiel. Xbox Support liet via het officiële kanaal weten dat gebruikers fouten tegenkwamen bij het aanmelden, bij het bekijken van hun spelbibliotheek en bij het starten van spellen, en dat technici actief aan verzachting werkten. Om 9:43 uur oostkusttijd verklaarde het bedrijf de oorzaak in alle vier de gebieden te hebben vastgesteld, met een oplossing die nog uitstond.

Downdetector legde de piek op 3.296 meldingen rond middernacht, aflopend naar ongeveer 700 om negen uur in de ochtend, waarbij 67 procent van de klachten uitdrukkelijk het starten van spellen noemde en niet het aanmelden of de winkel. Die verdeling is de eerste aanwijzing. Was dit een gewone netwerk- of aanmeldstoring geweest, dan zou aanmelden de meldingen hebben overheerst.

Het beslissende detail is wat er verder ophield te werken. Getroffen spelers konden gedownloade titels niet starten, en zij konden evenmin schijfspellen of achterwaarts compatibele titels spelen. Een schijf in de lade is zo plaatselijk als software maar kan zijn. Hij faalde omdat de servers de licentiecontrole niet konden afronden die een schijf vereist voordat hij start. Dit was geen netwerkstoring die toevallig spelers hinderde. Het was een storing in de rechtenverlening, en de schijf is het bewijs.

Uw beschikbaarheid is de laagste van twee getallen

Elk product dat bij het starten een licentie controleert, erft de beschikbaarheid van degene die controleert. Dat laat u een feitelijke beschikbaarheid die gelijk is aan het minimum van twee getallen: dat van uw toepassing en dat van uw rechtendienst. Het is eenvoudige rekenkunde en zij staat vrijwel nooit op een overzichtsbord, omdat rechtenlogica meestal eenmalig en vroeg wordt gebouwd door een klein team en daarna als leidingwerk wordt behandeld.

Het patroon reikt veel verder dan consoles. Bureaubladsoftware met een activeringsaanroep, systemen in eigen huis die het aantal licenties opvragen, ingebedde apparaten die bij het opstarten valideren, industriële machines met functies achter een abonnement, elk product waarvan het aanmeldpad afhangt van een aparte licentiedienst: zij hebben allemaal dezelfde vorm. De klant heeft de bestanden. Wat hij tijdens een storing mist, is de toestemming om ze uit te voeren.

De storingsvorm is bovendien ongewoon schadelijk voor vertrouwen, want hij spreekt tegen wat de klant denkt te hebben gekocht. Uitval bij een doorgiftedienst is hinderlijk maar begrijpelijk. Een spel niet kunnen starten vanaf een schijf die de uwe is, op een console die voor u staat, voelt eerder als een gebroken belofte. Die reactie is niet onredelijk, en in Europa is zij niet louter een reactie.

In de EU houdt een terugkerende onderbreking op ongemak te zijn

De Europese richtlijn over overeenkomsten voor de levering van digitale inhoud en digitale diensten stelt hier de norm, en die is strenger dan de meeste productteams aannemen. Voorziet een overeenkomst in doorlopende levering over een periode, dan moet de digitale inhoud of dienst gedurende die hele periode conform zijn. De handelaar blijft aansprakelijk voor elk gebrek aan conformiteit dat tijdens de leveringsperiode aan het licht komt, en niet alleen voor de toestand op het moment van verkoop.

De richtlijn behandelt storingen vervolgens rechtstreeks. Korte onderbrekingen van de levering moeten worden behandeld als gevallen van gebrek aan conformiteit wanneer die onderbrekingen niet onbeduidend zijn of wanneer zij zich herhalen. Lees die bepaling met dit weekeinde in gedachten: dit was de tweede Xbox-storing in twee dagen, en enkele dagen eerder was er een storing bij PlayStation Network. De drempel gaat niet alleen over hoe lang een enkel voorval duurde. Herhaling is een zelfstandige route naar dezelfde uitkomst, en dat is precies de valkuil voor een dienst met korte, frequente haperingen in plaats van één lange uitval.

Staat een gebrek aan conformiteit vast, dan heeft de consument recht op het in conformiteit brengen van de dienst en, bij gebreke daarvan, op een proportionele prijsvermindering of op ontbinding van de overeenkomst. Of een bepaalde storing die grens overschrijdt is een feitelijke vraag naar de omstandigheden, en een groot platform vangt dat op. Voor een kleinere aanbieder telt dat die toets bestaat, en dat uw abonnementsomzet eraan is blootgesteld.

De toets die u deze week op uw eigen product moet doen

Begin met een inventarisatie in plaats van een architectuurdebat. Noteer elk punt in uw product waar een handeling van de klant wacht op een aanroep naar uw infrastructuur voor een toestemming en niet voor gegevens: activering, validatie van werkplekken, functieschakelaars, verversing van rechten, licentiehartslag. Schrijf voor elk daarvan in gewone taal op wat de klant ziet als die aanroep faalt. Teams zijn vaak verrast, omdat het foutpad jaren geleden is geschreven door iemand die sindsdien is vertrokken.

Repareer daarna de twee dingen die goedkoop zijn. Geef elke licentiecontrole een respijtperiode zonder verbinding, zodat een tijdelijke storing verwordt tot vertraging en niet tot een slot, en maak die periode lang genoeg voor een slechte nacht en niet voor een slechte minuut. Bewaak ten tweede de rechtendienst als een eigen, voor de klant zichtbare afhankelijkheid met een eigen alarm, en publiceer de status waar klanten die kunnen zien, want tijdens een storing is het gebrek aan informatie wat irritatie in opzegging verandert.

Microsoft is hier voor de lunch van hersteld en verliest niets blijvends. Een middelgroot Nederlands softwarebedrijf met een abonnementsbestand en een controle bij het starten heeft dat kussen niet. De architectuurles is deze week gratis, en dat is de goedkoopste manier om haar te leren.