La motivation derrière le développement de CouchDB peut être définie en un seul mot : détente. CouchDB est livré avec une suite de fonctionnalités conçues pour faciliter l’exécution d’un système distribué résilient. Voici quelques-unes des fonctionnalités CouchDB les plus notables, et ce qui le distingue des autres bases de données NoSQL.
Réplication. L’une des principales fonctionnalités de CouchDB est la réplication. En effet, la synchronisation des données entre les différents serveurs et appareils se fait par le biais d’une réplication bidirectionnelle. Cette réplication permet aux entreprises d’optimiser la disponibilité des systèmes, de réduire les délais de récupération des données, de géolocaliser les données les plus proches des utilisateurs finaux et de simplifier les processus de sauvegarde.
Avec CouchDB, peu importe si les données sont hébergées sur un seul serveur ou sur plusieurs. En effet, CouchDB identifie les modifications au fur et à mesure qu’elles sont apportées aux documents, quelle que soit la source, et veille à ce que toutes les copies de la base de données restent synchronisées pour contenir les informations les plus récentes. Cela permet de gérer simultanément plusieurs copies autonomes, tout en conservant des informations précises et en temps réel dans différents environnements informatiques.
Vues. CouchDB utilise les vues comme outil principal pour exécuter les requêtes et générer des rapports à partir des fichiers de documents stockés. Les vues vous permettent de filtrer les documents pour trouver les informations portant sur un processus de base de données particulier. Ces informations peuvent ensuite être cartographiées selon vos préférences, et extraites dans un ordre donné.
Le grand avantage de CouchDB réside dans la souplesse avec laquelle les informations sont présentées. Comme les vues CouchDB sont construites dynamiquement et n’affectent pas directement les magasins de documents sous-jacents, le nombre de vues différentes que vous pouvez exécuter pour les mêmes données est illimité. Créées dans des documents spéciaux, ces vues peuvent être répliquées sur plusieurs instances de base de données, comme les données stockées normalement.
Une autre fonctionnalité intéressante de CouchDB est la disponibilité de MapReduce. Les vues CouchDB peuvent effectuer des agrégations de synthèse sur les données contenues dans l’index. Pré-calculées et stockées, elles peuvent être renvoyées instantanément, même sur des milliards de documents.
API HTTP. CouchDB utilise une API REST pour accéder à la base de données, quel que soit l’emplacement, avec une flexibilité totale pour les opérations CRUD (création, lecture, mise à jour, suppression). Simple et efficace, cette connectivité de base de données rend CouchDB flexible, rapide et puissant, tout en restant hautement accessible.
Conçu pour le hors ligne. Lorsque vous améliorez la convivialité et l’accessibilité de votre base de données, il est essentiel de pouvoir créer des applications qui fonctionnent aussi bien hors ligne qu’en ligne. CouchDB permet aux applications de stocker les données collectées localement sur les appareils mobiles et les navigateurs, puis de les synchroniser une fois qu’elles sont remises en ligne.
Stockage efficace des documents. Dans CouchDB, les documents JSON sont les principales unités de données, au même titre que les pièces jointes binaires associées telles que les images. La taille du texte et le nombre d’éléments sont illimités pour chaque document. Une fois répliquées, les données sont accessibles et mises à jour sur des clusters de serveurs répartis à l’échelle mondiale.
Compatibilité. Extrêmement accessible, CouchDB offre de nombreux avantages en termes de compatibilité avec votre infrastructure actuelle. CouchDB a été écrit en Erlang (un langage de programmation et système d’exécution polyvalent, concurrent et ramasse-miettes), ce qui le rend fiable et facile à utiliser pour les développeurs. Il peut être placé derrière les équilibreurs de charge HTTP standard. Des clients HTTP sont disponibles pour tous les langages de programmation, ainsi que des bibliothèques client CouchDB.
Flexible, CouchDB peut être installé et exécuté sur de nombreux systèmes d’exploitation et outils de virtualisation. Il est également compatible avec PouchDB, une base de données légère, conçue pour fonctionner dans le navigateur Web, y compris sur les appareils mobiles.