• [^] # Re: Une vie sans jointure

    Posté par (site web personnel) . En réponse à la dépêche Donnez votre avis sur la nouvelle architecture de Cozy. Évalué à 8.

    Voici quelques caractéristiques de la réplication de CouchDB :

    • Elle se fait entre 2 bases de données CouchDB (ou autres instances qui parlent le protocole de réplication de CouchDB, pouchdb par exemple), sur le même serveur ou sur 2 serveurs différents.
    • Il n'y a pas de notion de primary/secondary entre ces 2 bases de données. Les 2 bases peuvent évoluer différemment (avec une notion de conflit quand un même document est modifié dans les 2 bases en même temps).
    • La réplication peut se faire dans un seul sens, ou dans les deux sens.
    • La réplication peut porter sur l'intégralité de la base de données, ou juste sur un sous-ensemble. Dans le second cas, on peut utiliser une fonction JavaScript qui va pour chaque document dire s'il doit être repliqué ou non. Par exemple, on peut vouloir répliquer que les documents qui ont le champ public avec une valeur true.
    • La réplication peut se faire en continu (on ouvre une socket entre les 2 bases de données et chaque modification est envoyée au fur et à mesure dans cette socket) ou en mode single-shot (une base de données dit à l'autre que lors de la dernière réplication, elle en était à telle révision et qu'elle aurait besoin des nouvelles modifications).

    Du coup, ça permet de faire des choses assez sympas, comme avoir dans le navigateur une base de données locale, qui peut fonctionner en mode offline et se resynchroniser quand le réseau revient.