1Managementsamenvatting
In de ochtend van zaterdag 20 juni liep de nachtelijke artikel‑synchronisatie van de webshop veel langer dan normaal (bijna 4 uur in plaats van enkele minuten) en kwam pas rond 07:30 klaar — precies toen de eerste klanten de winkel openden. Tijdens dat proces waren artikelen tijdelijk onzichtbaar en leken winkelmandjes leeg.
Belangrijkste conclusie
Er is geen data verloren gegaan. De inhoud van de winkelmandjes is niet gewist. Voor het overgrote deel van de klanten herstelde de weergave zich vanzelf zodra de verwerking klaar was. Een beperkt aantal klanten met een groot, intensief gebruikt mandje vraagt om gericht handmatig herstel — dat pakken we met voorrang op (zie Herstel & planning).
2Wat er feitelijk gebeurde
Tijdlijn — zaterdag 20 juni
- 03:45De nachtelijke artikel‑synchronisatie start (verwerkt ± 20.800 artikelen vanuit Profit). Normaal duurt dit ± 3,5 minuut.
- 03:45 – 07:31Die nacht duurde de synchronisatie bijna 4 uur. Ook een tweede onderhoudstaak liep tegelijk en even traag — beide kropen vooruit doordat ze de database gelijktijdig belastten.
- 06:59 – 07:31De afrondende opschoonstap zette de artikeltabel ± 32 minuten “op slot”. In deze periode kon de winkel artikelen tijdelijk niet ophalen → artikelen onzichtbaar, mandjes leken leeg.
- zo 04:00Volgende verversing voltooid — artikelweergave weer normaal.
- ma ochtendWinkelwagen-synchronisatie afgerond.
3Onderbouwde oorzaak
Twee samenlopende effecten
① De acute storing (zaterdagochtend)
Meerdere zware nachttaken stonden te dicht op elkaar gepland en belastten de database gelijktijdig. Daardoor liep de artikel‑synchronisatie 63× trager dan normaal en door tot in de ochtendspits. Tijdens de afsluitende opschoonstap was de artikeltabel kort vergrendeld, waardoor de winkel artikelen even niet kon tonen. Dit herstelde vanzelf.
② Het naijl-effect (grote mandjes)
Door de verstoorde verwerking kregen veel artikelen een nieuw intern volgnummer. Winkelmandjes die nog naar het oude nummer verwezen — en geen tweede, vaste artikelcode hadden opgeslagen — vinden hun artikel niet meer terug. Die mandjes herstellen niet vanzelf, maar zijn gericht te repareren.
Bewijs uit de serverlogs
| Meting | Normaal (19-06) | Storing (20-06) |
|---|---|---|
| Duur artikel-synchronisatie | 3,5 min | 3 u 46 min |
| Verwerkte artikelen | 20.833 | 20.831 (normaal — geen data-issue) |
| Duur opschoonstap (tabel-lock) | ± 1 sec | ± 32 min |
| Tweede nachttaak (gelijktijdig) | 2 min | 3 u 53 min |
De server liep die nacht bovendien herhaaldelijk tegen een capaciteitslimiet voor gelijktijdige processen aan — dit stemmen we af met de hostingpartij (Qware).
4Impact
Omvang van het naijl-effect
Eén klant springt eruit
Eén klant heeft over ± 3 weken een zeer groot mandje opgebouwd (honderden artikelen, t.b.v. een containerbestelling). Juist dit mandje valt onder de groep die niet vanzelf herstelt, en een deel ervan bestaat uit oudere items zonder vaste artikelkoppeling. Wij behandelen dit met de hoogste prioriteit en reconstrueren waar nodig uit de backup van vóór de storing — zie de aanpak hieronder.
5Herstel & planning
Hoe en wanneer we de mandjes terugzetten
Onze intentie
We pakken het grote, intensief gebruikte mandje (containerbestelling) met de hoogste prioriteit op en zetten alles op alles om de inhoud terug te halen — bij voorkeur door reconstructie uit een backup van vóór de storing. Een deel van de oudere mandje-items kan een handmatige controle of, in het uiterste geval, opnieuw toevoegen vragen; we brengen per klant exact in kaart wat we terugzetten en wat eventueel aandacht nodig heeft.
Werkwijze per mandje
- Backup van vóór de storing inzetten. We draaien dagelijks een volledige backup. Een backup van vóór 20 juni bevat de mandjes nog met de toen geldige artikelkoppelingen — dat is de meest betrouwbare bron voor reconstructie.
- Mandje reconstrueren. We zetten de inhoud terug en koppelen elk artikel aan zijn huidige nummer in de webshop.
- Per klant controleren. We verifiëren elk hersteld mandje en brengen in kaart welke artikelen terug zijn en welke eventueel aandacht nodig hebben.
- Terugkoppelen. Per klant bevestigen we wat is hersteld, transparant en volledig.
6Structurele preventie
Zodat dit niet terugkomt
- Nachttaken uit elkaar trekken. De zware synchronisatie- en opschoontaken krijgen verschillende tijdstippen en wachten netjes op elkaar, met ruime marge vóór openingstijd.
- Opschoonstap onschadelijk maken voor de winkel. Artikelen hoeven tijdens het bijwerken niet meer “op slot”, zodat winkel én mandjes altijd bereikbaar blijven — ook als een synchronisatie een keer langer duurt.
- Mandje koppelen aan de vaste artikelcode. Winkelmandjes leggen voortaan altijd de vaste artikelcode vast, zodat een nieuw intern volgnummer een mandje nooit meer kan breken.
- Capaciteit afstemmen met Qware. We bespreken de serverlimiet die werd geraakt en of die verhoogd kan worden.
Alle aanpassingen verlopen via onze normale test-en-uitrolprocedure: eerst testen, daarna live — en niet op vrijdag.
7Klantcommunicatie
Kant-en-klare tekst voor uw klanten (Engels)
Twee versies: een algemene boodschap, en een persoonlijke variant voor de zwaar getroffen klant met het grote mandje. Kies een tab en klik op Copy.
Dear customer,
On the morning of Saturday 20 June, our webshop experienced a temporary disruption. A nightly product-synchronisation took much longer than usual and was still running when the shop opened, which caused some products to be temporarily invisible and made shopping carts appear empty.
We want to reassure you: no data has been lost. The contents of your shopping cart were never deleted. For most customers the cart was restored automatically once the synchronisation finished.
For a small number of customers, part of the cart may still appear incomplete. This is because some products received a new internal reference during the update. We are restoring these carts in a targeted way, and we keep daily backups, so nothing is lost.
We have identified the cause and are implementing structural improvements so that the nightly updates can no longer affect the shop during opening hours.
We apologise for any inconvenience and thank you for your understanding. If you notice anything unusual in your account or cart, please let us know and we will resolve it for you.
Kind regards,
NLfood
Tip: vul bij de persoonlijke versie de naam in en stem de termijn af op wat is toegezegd. Aanhef en ondertekening passen we graag aan.