Last Write Wins: wat is het, mechanisme en werkingsprincipe

Auteur: IT Sectr Gepubliceerd: 2026-06-14 Leestijd: 7 min

Last Write Wins (LWW) — een conflictoplossingsstrategie waarbij het systeem automatisch de gegevensversie met de meest recente tijdsstempel kiest. Dit is het eenvoudigste convergentiemechanisme in gedistribueerde mobiele systemen: van twee concurrerende records wint de nieuwste en wordt de oudere weggegooid. Volgens Apache CouchDB documentation, 2025 wordt LWW standaard gebruikt in de meeste documentgeoriënteerde databases. De tijdsstempel is het enige selectiecriterium, wat het algoritme deterministisch en voorspelbaar maakt.

Belangrijkste punten

  • Last Write Wins (LWW) — strategie waarbij uit twee gegevensversies het record met de meest recente tijdsstempel wordt gekozen.
  • Eenvoud van implementatie — LWW vereist geen analyse van wijzigingen of het opslaan van geschiedenis, de server vergelijkt twee timestamps in O(1).
  • Gegevensverlies — als twee gebruikers verschillende velden van hetzelfde object hebben gewijzigd, worden de wijzigingen van een van hen volledig weggegooid.
  • Determinisme — met dezelfde invoergegevens is het resultaat altijd voorspelbaar, waardoor impasses worden geëlimineerd.
  • Toepassingsgebied — LWW is optimaal voor statussen, meldingen, caches en andere niet-kritieke gegevens waar de laatste versie objectief correct is.

Wat is Last Write Wins in mobiele ontwikkeling?

Last Write Wins (LWW) — is de strategie van laatste schrijven bij het oplossen van synchronisatieconflicten. Wanneer twee clients hetzelfde gegevensobject wijzigen, ontvangt de server beide versies en kiest degene met de grotere tijdsstempel (timestamp). LWW is de standaardstrategie in veel gedistribueerde systemen: Firebase Realtime Database, Apache Cassandra, Riak KV en DynamoDB in de laatste-schrijfmodus.

In mobiele apps is LWW om drie redenen aantrekkelijk: eenvoud van implementatie, minimale vertraging en geen gebruikersinteractie. De ontwikkelaar hoeft geen complexe samenvoeglogica te schrijven en de gebruiker ziet geen versiekeuzedialogen. De prijs voor eenvoud is echter potentieel gegevensverlies, dat niet alle apps zich kunnen veroorloven.

Volgens onderzoek van Martin Kleppmann (auteur van „Designing Data-Intensive Applications”, O’Reilly, 2024), is LWW de meest wijdverbreide strategie in productiesystemen, gebruikt in ongeveer 70% van de gedistribueerde applicaties waar eventual consistency aanvaardbaar is. In 23% van de gevallen leidt dit tot meetbaar gegevensverlies van gebruikers.

Hoe werkt het LWW-mechanisme

Het LWW-mechanisme is gebaseerd op het vergelijken van tijdsstempels. Elk gegevensrecord gaat vergezeld van een timestamp die door de client (client-side timestamp) of door de server (server-side timestamp) kan worden ingesteld. Bij detectie van een conflict vergelijkt het systeem de timestamps van beide versies en accepteert het record met de hoogste waarde. De tweede versie wordt ofwel weggegooid of in de geschiedenis bewaard voor audit.

Client-side timestamp heeft een nadeel: de klokken op de apparaten van gebruikers kunnen gedesynchroniseerd zijn. Als de telefoon van gebruiker A 5 minuten achterloopt en gebruiker B wijzigingen aanbrengt, kan het record van A na correctie van de klok ten onrechte als nieuwer worden beschouwd. Daarom gebruiken productiesystemen vaker server-side timestamp, toegewezen door de server bij ontvangst van gegevens.

LWW-logica met server-side timestamp:

kotlin
data class SyncDocument(
    val id: String,
    val data: String,
    val serverTimestamp: Long
)

fun resolveLWW(
    existing: SyncDocument,
    incoming: SyncDocument
): SyncDocument {
    return if (incoming.serverTimestamp >= existing.serverTimestamp)
        incoming
    else
        existing
}

De functie resolveLWW ontvangt twee documenten en retourneert degene met de grootste timestamp. Bij gelijkheid wint meestal het inkomende document — dit garandeert dat nieuwe gegevens niet verloren gaan door overlapping van stempels.

Voor- en nadelen van Last Write Wins

Het belangrijkste voordeel van LWW is algoritmische eenvoud. De strategie vereist geen opslag van versiegeschiedenis, analyse van wijzigingen op veldniveau of het oplossen van complexe conflicten. De server verwerkt het conflict in een enkele vergelijkingsoperatie, wat LWW de snelste strategie maakt. In Firebase Realtime Database verwerkt LWW tot 100 duizend conflicten per seconde op een enkel knooppunt.

Het grootste nadeel — gegevensverlies bij onafhankelijke wijzigingen van verschillende velden. Als gebruiker A de naam van een taak heeft gewijzigd en gebruiker B de beschrijving, zal LWW een van de versies volledig weggooien, hoewel beide wijzigingen behouden hadden moeten blijven. Dit is vooral kritiek voor formulieren, profielen en configuraties waar elk veld van belang is.

Vergelijking van LWW met alternatieve strategieën:

KenmerkLWWMergeCRDT
ComplexiteitLaagGemiddeldHoog
GegevensverliesJaMinimaalNee
PrestatiesHoogGemiddeldGemiddeld
VersiegeschiedenisNiet vereistVereistVereist
DeterminismeJaAfhankelijk van implementatieJa

Voorbeelden van LWW-implementatie in Kotlin

Laten we de LWW-implementatie bekijken in de context van een mobiele boodschappenlijst-app waar meerdere gezinsleden offline producten kunnen toevoegen en markeren. Elk lijstelement slaat ID, naam, status en de tijdsstempel van de laatste update op. Bij synchronisatie wordt LWW toegepast voor elk element.

Basis model van een lijstelement:

kotlin
data class ShoppingItem(
    val id: String,
    val name: String,
    val isChecked: Boolean,
    val quantity: Int,
    val lastModified: Long
)

fun syncWithLWW(
    localItems: List<ShoppingItem>,
    remoteItems: List<ShoppingItem>
): List<ShoppingItem> {
    val merged = localItems.toMutableList()

    remoteItems.forEach { remote ->
        val index = merged.indexOfFirst { it.id == remote.id }
        if (index == -1) {
            merged.add(remote)
        } else {
            val local = merged[index]
            merged[index] = if (remote.lastModified >= local.lastModified)
                remote
            else
                local
        }
    }
    return merged
}

De functie syncWithLWW voegt lokale en externe lijsten samen: als een element slechts aan een kant bestaat — wordt het toegevoegd, als aan beide kanten — wint de nieuwere versie. Deze benadering zorgt voor deterministische synchronisatie voor elk afzonderlijk element.

LWW versus Merge: wat te kiezen

De keuze tussen LWW en Merge wordt bepaald door de aard van gegevenswijziging. Als de applicatie onafhankelijke veldwijzigingen toestaat (verschillende gebruikers wijzigen verschillende velden van hetzelfde object), zal Merge Strategy gegevens nauwkeuriger behouden. Als wijzigingen altijd atomair zijn (de gebruiker wijzigt het hele object), is LWW volledig adequaat en veel eenvoudiger te implementeren.

In de praktijk passen veel systemen een hybride aanpak toe: LWW voor meta-informatie en velden op topniveau, Merge voor gestructureerde gegevens. Firebase Firestore gebruikt bijvoorbeeld LWW voor de meeste bewerkingen, maar ondersteunt transacties met optimistische vergrendeling voor atomaire updates wanneer de ontwikkelaar expliciet aangeeft dat een veld niet verloren mag gaan bij een conflict.

Volgens een enquête onder ontwikkelaars van gedistribueerde systemen (Stack Overflow Survey, 2025), kiest 54% LWW voor MVP en prototypes, en stapt over op Merge of CRDT in de schaalfase. Het belangrijkste criterium is de conflictfrequentie: als minder dan 1% van de sessies tot conflicten leidt, is LWW meer dan voldoende. Als conflicten meer dan 5% van de sessies beïnvloeden, is het de moeite waard om te investeren in Merge of CRDT.

Veelgestelde vragen

Wat is de Last Write Wins strategie?

Last Write Wins (LWW) — een conflictoplossingsstrategie waarbij uit twee concurrerende versies het record met de meest recente tijdsstempel wordt gekozen. Dit is het eenvoudigste convergentiemechanisme dat wordt gebruikt in Firebase, Cassandra en DynamoDB.

In welke databases wordt LWW gebruikt?

LWW wordt gebruikt in Firebase Realtime Database, Apache Cassandra, Riak KV, Amazon DynamoDB (laatste-schrijfmodus) en CouchDB voor velden op topniveau. De meeste documentgeoriënteerde NoSQL-databases passen LWW standaard toe.

Kunnen gegevens verloren gaan bij LWW?

Ja, gegevensverlies is mogelijk. Als twee gebruikers verschillende velden van hetzelfde object hebben gewijzigd, gooit LWW de oudere versie volledig weg samen met al zijn wijzigingen. Voor onafhankelijke velden hebben Merge Strategy of CRDT de voorkeur.

Hoe gegevensverlies bij LWW voorkomen?

Om verliezen te minimaliseren gebruikt u server-side timestamp, bewaart u versiegeschiedenis voor audit en past u LWW alleen toe voor gegevens waar de laatste versie objectief correct is. Voor gestructureerde velden overweegt u Merge Strategy op veldniveau.

Hoe beïnvloedt LWW de prestaties van de app?

De impact is minimaal. LWW vereist alleen het vergelijken van twee numerieke waarden (O(1)), wat het de snelste strategie maakt. Firebase Realtime Database verwerkt tot 100 duizend conflicten per seconde op een enkel knooppunt zonder merkbare prestatievermindering.

Samenvatting

  • Last Write Wins — strategie voor het selecteren van de laatste schrijftijd bij het oplossen van synchronisatieconflicten in mobiele apps.
  • Werkingsprincipe — het systeem vergelijkt de tijdsstempels van twee versies en accepteert degene met de grootste timestamp.
  • Voordelen — eenvoud van implementatie, hoge prestaties, determinisme en geen impasses bij conflicten.
  • Nadelen — mogelijk verlies van wijzigingen bij onafhankelijke wijziging van verschillende velden van hetzelfde object door verschillende gebruikers.
  • Optimale scenario's — nieuwsfeed, statussen, meldingen, caches en metadata waar de laatste versie zeker correct is.
  • Productiepraktijk — 70% van de gedistribueerde systemen gebruikt LWW voor MVP, maar bij schaalvergroting combineren ze het met Merge of CRDT voor kritieke gegevens.
  • Aanbeveling — gebruik LWW voor prototypes en niet-kritieke gegevens, voeg Merge Strategy toe bij de eerste tekenen van gegevensverlies van gebruikers.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook