Pattern 1 — Local-first avec sync optimiste
L'utilisateur écrit dans une base locale (SQLite, WatermelonDB). La sync se fait en arrière-plan. C'est le pattern par défaut pour les apps de saisie terrain.
Pattern 2 — Read-replica embarquée
L'utilisateur consulte une base répliquée localement, mais les mutations passent toujours par le réseau. Adapté quand les conflits métier sont coûteux.
Pattern 3 — Cache + queue d'actions
Lecture en cache, écritures empilées dans une queue persistante, rejouées quand le réseau revient. Plus simple à implémenter mais plus risqué côté UX.
Quel pattern choisir ?
On part presque toujours sur le pattern 1 avec WatermelonDB. C'est verbeux à mettre en place, mais imbattable à l'usage.