Dictionary

At-most-once delivery

At-most-once delivery betekent dat elk bericht hoogstens één keer aankomt: nul of één keer. Het kan verloren gaan, maar komt nooit dubbel toe. Fire and forget, zonder nieuwe poging. Lees wanneer die keuze slim is (metingen, sensoren) en wanneer ze absoluut niet kan (betalingen, bestellingen).

Wat is at-most-once delivery?

At-most-once delivery betekent dat elk bericht hoogstens één keer aankomt: nul of één keer. Het kan verloren gaan, maar komt nooit dubbel toe. De verzender stuurt zijn bericht en kijkt niet meer om: geen bevestiging afwachten, geen nieuwe poging als het misloopt.

In MQTT, het protocol achter veel sensoren, heet die aanpak fire and forget: afvuren en vergeten. Het is de tegenpool van at-least-once delivery, waar de verzender blijft herproberen en zo soms hetzelfde bericht twee keer aflevert. At-most-once ruilt die zekerheid in voor snelheid: de simpelste garantie, met de minste overhead.

Hoe werkt at-most-once?

Het mechanisme is bewust kaal. De verzender wacht niet op een ack (ontvangstbevestiging) en houdt geen kopie bij om opnieuw te sturen. Gaat het bericht onderweg verloren of crasht de ontvanger net voor hij het verwerkt, dan is het weg en komt er niks in de plaats.

Aan de leeskant zie je hetzelfde. Een consumer die at-most-once wil, markeert een event als verwerkt voordat hij het behandelt. In Apache Kafka commit je daarvoor de offset (je positie in de stroom) voor je aan de slag gaat. Crasht de consumer tussen die twee stappen, dan begint hij bij de herstart een event verder. Dat ene is overgeslagen: nooit dubbel, soms gemist.

De drie bezorggaranties naast elkaar

At-most-once is er één van drie. Het verschil zit volledig in wat er gebeurt bij een fout.

  • At-most-once: nul of één keer. Een bericht kan verloren gaan, maar komt nooit dubbel. Snelst en eenvoudigst, want er is geen herhaling en geen dedup nodig.

  • At-least-once: één of meer keer. Een bericht gaat nooit verloren, maar kan dubbel aankomen na een retry. Daarom verwerk je zulke berichten idempotent: twee keer verwerken geeft hetzelfde resultaat als één keer.

  • Exactly-once: precies één keer. Niks verloren, niks dubbel. De sterkste garantie, maar ze vraagt coördinatie tussen verzender en ontvanger en is daardoor het traagst en duurst.

De meeste message brokers leveren standaard at-least-once: een verloren bericht is meestal erger dan een dubbel. At-most-once kies je bewust, waar dat net omgekeerd ligt.

Wanneer kies je at-most-once?

Kies at-most-once als een verloren bericht je niks kost en snelheid en eenvoud wel iets opleveren. Bij hoog volume telt dat dubbel: elke ack en retry is werk dat je hier overslaat.

Waar het past:

  • Sensormetingen. Een toestel dat elke seconde de temperatuur doorstuurt. Mis je er één, dan is de volgende er een seconde later en blijft de trend kloppen.

  • Telemetrie in groten getale. Prestatiecijfers van servers, app-gebeurtenissen, klikstromen. Je kijkt naar het geheel: één datapunt op miljoenen verschuift de cijfers niet.

  • Log sampling. Wie geen volledige logs bewaart maar een steekproef, heeft aan at-most-once genoeg: die steekproef is toch al onvolledig.

Waar het niet kan: betalingen, bestellingen en voorraadmutaties. Daar is elk verloren bericht een fout die je achteraf niet terugvindt en die een klant of je boekhouding raakt. Voor die stromen gebruik je at-least-once met idempotente verwerking, of exactly-once. De testvraag: als net dit bericht verdwijnt, merkt iemand het dan en kost het geld? Zo ja, dan valt at-most-once af.

Laatst Bijgewerkt: July 7, 2026 Terug naar Woordenboek
Trefwoorden
at-most-once delivery at-most-once at-least-once delivery exactly-once processing apache kafka idempotentie streaming data mqtt qos message broker bezorggarantie distributed systems