FreemiumProBusinessEnterprise

Résolution des conflits

Quand les conflits surviennent

Un conflit de données survient lorsqu'un même enregistrement est modifié depuis différentes sources avant que les modifications ne soient synchronisées. Scénarios typiques :

Deux appareils hors ligne

Deux membres de l'équipe travaillent hors ligne sur des appareils différents et modifient le même enregistrement. Par exemple :

  • L'opérateur à l'entrée effectue le check-in d'un participant et ajoute le commentaire « VIP »
  • Le responsable sur un autre appareil effectue le même check-in et ajoute le commentaire « Place supplémentaire »
  • Au rétablissement de la connexion, les deux modifications sont envoyées au serveur

Hors ligne + en ligne

Un membre de l'équipe travaille hors ligne, un autre en ligne :

  • Le responsable sur ordinateur (en ligne) modifie le statut d'inscription
  • L'opérateur sur le terrain (hors ligne) modifie le même statut
  • Lors de la synchronisation, la modification hors ligne entre en conflit avec la modification en ligne déjà appliquée

Quand les conflits sont peu probables

En pratique, les conflits sont rares car :

  • Les différents membres de l'équipe travaillent généralement avec des participants différents
  • Le check-in est une opération unidirectionnelle (validation de présence), un conflit de check-in n'est possible qu'en cas de double scan
  • Les opérations de paiement sont protégées par un idempotency-key

Stratégie : last-writer-wins (Free, Pro)

Sur les forfaits Free et Pro, la stratégie automatique last-writer-wins (le dernier gagne) est utilisée :

Comment ça fonctionne

  1. Lors de la synchronisation, le serveur compare les horodatages clientTs des modifications en conflit.
  2. La modification avec l'horodatage le plus récent est automatiquement sauvegardée.
  3. La modification avec l'horodatage le plus ancien est écrasée.
  4. Les deux modifications sont enregistrées dans l'audit log (même celle écrasée).

Exemple

HeureActionRésultat
10:05Opérateur A (hors ligne) : check-in + commentaire « VIP »Sauvegardé localement
10:07Opérateur B (hors ligne) : check-in + commentaire « Standard »Sauvegardé localement
10:15Opérateur A revient en ligneModification envoyée
10:16Opérateur B revient en ligneConflit. B gagne (10:07 > 10:05). Commentaire = « Standard »

Avantages et limitations

Avantages :

  • Entièrement automatique -- ne nécessite aucune intervention de l'utilisateur
  • N'interrompt pas le flux de travail
  • Convient à la plupart des scénarios (check-in, statuts simples)

Limitations :

  • La modification la plus ancienne est perdue sans notification
  • Pas de possibilité de fusionner deux modifications
  • Pour les données critiques, peut entraîner une perte d'information

Stratégie : verrouillage optimiste + interface de fusion (Business, Enterprise)

Sur les forfaits Business et Enterprise, une stratégie interactive de résolution des conflits avec interface visuelle est disponible.

Comment ça fonctionne

  1. Lors de la synchronisation, le serveur détecte un conflit (l'enregistrement a été modifié après le dernier état connu du client).
  2. Au lieu d'un écrasement automatique, le serveur renvoie les deux versions.
  3. L'utilisateur voit l'interface de fusion -- une interface de comparaison des versions.
  4. L'utilisateur choisit quelle version conserver ou fusionne les modifications manuellement.

Interface de fusion

L'interface de résolution des conflits affiche :

  • Colonne de gauche : votre version (modification locale)

    • Auteur de la modification
    • Heure de la modification
    • Champs modifiés avec leurs valeurs
  • Colonne de droite : version du serveur (modification d'un autre utilisateur)

    • Auteur de la modification
    • Heure de la modification
    • Champs modifiés avec leurs valeurs
  • Actions :

    • « Garder ma version » -- votre modification écrase celle du serveur
    • « Accepter la version du serveur » -- la version du serveur est conservée, votre modification est annulée
    • « Fusionner » -- vous choisissez manuellement la valeur pour chaque champ

Exemple

ChampVotre versionVersion du serveur
Check-inOuiOui
CommentaireVIP, place A-12Standard
StatutConfirméConfirmé

Vous pouvez accepter le check-in des deux versions (identiques), prendre votre commentaire et le statut du serveur.

Verrouillage optimiste

Sous le capot, le verrouillage optimiste est utilisé :

  • Chaque enregistrement possède une version (compteur de version)
  • Lors de l'envoi d'une modification, le client indique sur quelle version elle est basée
  • Si la version sur le serveur a changé (quelqu'un d'autre a mis à jour l'enregistrement), le serveur renvoie un conflit
  • Le client affiche l'interface de fusion

Notifications de conflit

Lors de la détection d'un conflit :

Free / Pro : notification toast « Conflit de données résolu automatiquement » (informative, sans action requise).

Business / Enterprise : notification toast « Conflit détecté. Votre décision est requise » avec un bouton pour accéder à l'interface de fusion. Le conflit bloque la synchronisation des autres modifications jusqu'à sa résolution.

Recommandations

  • Répartissez les zones de responsabilité. Attribuez à chaque membre de l'équipe des groupes de participants ou des zones de check-in différents pour minimiser les conflits.
  • Synchronisez plus souvent. De courtes périodes de travail hors ligne réduisent la probabilité de conflits.
  • Utilisez l'interface de fusion pour les données critiques. Si votre équipe travaille activement sur les mêmes enregistrements, envisagez de passer au forfait Business pour accéder à la résolution interactive des conflits.

Questions fréquentes

Quand les conflits surviennent-ils ?
Un conflit survient lorsque deux ou plusieurs membres de l'équipe modifient le même enregistrement en étant hors ligne, ou lorsqu'une modification est faite hors ligne et une autre en ligne. Par exemple, deux personnes effectuent simultanément le check-in et ajoutent un commentaire pour le même participant.
Que signifie last-writer-wins ?
Last-writer-wins est une stratégie qui sauvegarde automatiquement la modification la plus récente. Si deux personnes ont modifié le même enregistrement, la version avec l'horodatage le plus récent est conservée. La modification précédente sera écrasée.
Comment fonctionne l'interface de fusion sur Business et Enterprise ?
Lors de la détection d'un conflit, le système affiche les deux versions de la modification côte à côte. Vous voyez qui a effectué chaque modification et quand, et vous choisissez quelle version conserver ou les fusionnez manuellement.