Offline Strategy
Version : 1.0
Statut : Architecture de référence
1. Objectif
Ce document définit la stratégie officielle de fonctionnement hors connexion de DMV Mobile.
Contrairement à de nombreuses applications mobiles, DMV n'est pas une plateforme Offline First.
Le choix architectural retenu est :
Online First with Offline Continuity
Ce principe constitue l'une des décisions fondamentales de l'architecture mobile.
2. Pourquoi ce choix ?
DMV est une plateforme vivante.
Chaque minute peuvent apparaître :
- de nouvelles publications ;
- de nouveaux événements ;
- de nouvelles alertes ;
- de nouveaux acteurs ;
- de nouveaux utilisateurs.
Les données évoluent en permanence.
Une copie locale de la plateforme deviendrait rapidement obsolète.
Le téléphone ne peut donc pas devenir la source des données.
3. Source de vérité
Le principe est simple.
Serveur = Vérité
Téléphone = Copie temporaire
Le cache n'est jamais considéré comme officiel.
Toutes les décisions métier sont prises sur le serveur.
4. Définition
Online First signifie :
Lorsque le réseau est disponible :
- toutes les opérations passent par le serveur.
Offline Continuity signifie :
Lorsque le réseau disparaît :
- l'utilisateur continue à travailler autant que possible ;
- les données déjà téléchargées restent accessibles ;
- son contexte est conservé ;
- aucune perte de travail ne doit se produire.
5. Consultation hors connexion
Les contenus déjà présents dans le cache restent accessibles.
Exemples :
✓ Mur récemment consulté
✓ Commune ouverte récemment
✓ Agenda
✓ Favoris
✓ Publications consultées
✓ Mon Espace
Le cache constitue donc une mémoire locale de l'activité récente.
6. Création de contenu
Une distinction importante est faite entre :
- création ;
- publication.
Création
Certaines ressources peuvent être créées hors connexion.
Exemple :
Nouvelle publication
↓
Création d'un brouillon local
↓
Retour du réseau
↓
Synchronisation
↓
Création d'un brouillon serveur
Le contenu n'est jamais publié automatiquement.
Cette approche supprime pratiquement tous les conflits.
7. Publication
Une publication est une action métier.
Elle peut :
- déclencher des notifications ;
- modifier le Mur ;
- informer des milliers d'utilisateurs.
Elle nécessite donc obligatoirement une connexion.
Une publication ne peut jamais être réalisée hors connexion.
8. Modifications
Toutes les modifications n'ont pas le même niveau critique.
Autorisées hors connexion
Préférences utilisateur
Avatar
Paramètres locaux
Thème
Favoris
Brouillons
Interdites hors connexion
Modification d'un acteur
Modification d'une commune
Suppression
Gestion des collaborateurs
Permissions
Publication
Toutes ces opérations nécessitent le serveur.
9. Conflits
L'architecture DMV cherche à éviter les conflits plutôt qu'à les résoudre.
Le meilleur conflit est celui qui n'existe jamais.
Ainsi :
- les modifications critiques sont bloquées hors connexion ;
- les brouillons restent locaux jusqu'à synchronisation.
Cette philosophie simplifie considérablement le système.
10. Reprise réseau
Le retour de la connexion déclenche automatiquement :
-
Vérification réseau.
-
Synchronisation des brouillons.
-
Rafraîchissement des données.
-
Mise à jour du cache.
-
Reprise normale.
Aucune intervention utilisateur n'est nécessaire.
11. Gestion des erreurs
En cas d'échec :
- le brouillon reste local ;
- aucun contenu n'est perdu ;
- l'utilisateur est informé.
Une nouvelle tentative sera effectuée ultérieurement.
12. Cache
Le fonctionnement hors connexion repose entièrement sur le Cache Engine.
Celui-ci définit :
- quelles données sont conservées ;
- pendant combien de temps ;
- leur priorité.
Le Cache Engine est documenté dans :
06-cache-engine.md
13. Cas d'usage
Consultation dans un train
Le réseau disparaît.
↓
L'utilisateur continue à consulter les publications déjà ouvertes.
Création d'une publication
Le réseau disparaît.
↓
Le contenu devient un brouillon local.
↓
Retour du réseau.
↓
Synchronisation.
↓
Le brouillon apparaît dans le Workspace.
Modification d'un acteur
Le réseau disparaît.
↓
Modification impossible.
↓
Message explicite.
↓
Reprendre lorsque la connexion sera disponible.
14. Décisions figées
✓ Online First
✓ Offline Continuity
✓ Serveur = Source de vérité
✓ Cache = Copie temporaire
✓ Brouillons synchronisés
✓ Publication uniquement en ligne
✓ Pas de résolution complexe de conflits
✓ Le téléphone n'est jamais une base de données métier.
Conclusion
Le mode hors connexion de DMV n'a pas pour objectif de rendre la plateforme indépendante du serveur.
Son objectif est d'assurer une continuité de service, de préserver le travail de l'utilisateur et d'offrir une expérience fluide malgré les aléas du réseau.
Cette stratégie permet de conserver une architecture simple, robuste et durable.