couchdb

📁 g1joshi/agent-skills 📅 3 days ago
1
总安装量
1
周安装量
#46714
全站排名
安装命令
npx skills add https://github.com/g1joshi/agent-skills --skill couchdb

Agent 安装分布

mcpjam 1
claude-code 1
replit 1
junie 1
zencoder 1

Skill 文档

Apache CouchDB

CouchDB is a database that completely embraces the web. It speaks JSON and HTTP. It is unique for its multi-master replication protocol, making it ideal for “Offline First” apps.

When to Use

  • Offline First Apps: PouchDB (in browser) + CouchDB (server) is the gold standard for syncing data.
  • Peer-to-Peer: Multiple servers can replicate with each other.
  • Reliability: Crash-resistant architecture (Append-only storage).

Quick Start

# Create a document via REST API
curl -X PUT http://admin:password@127.0.0.1:5984/my_database/doc1 \
     -d '{"key": "value"}'

Core Concepts

Multi-Version Concurrency Control (MVCC)

Documents are versioned (_rev). If you update a doc, you must provide the current _rev. If it has changed on server, you get a conflict (409).

CommonJS MapReduce

Views are written in JavaScript functions (Map/Reduce).

Conflict Resolution

Since replication is multi-master, conflicts happen. CouchDB keeps all conflicting revisions and lets the app execute logic to pick a winner.

Best Practices (2025)

Do:

  • Use PouchDB: On the client side. It syncs automatically.
  • Use Mango Queries (Find): Easier than writing MapReduce views for simple lookups.
  • Compact: The append-only file grows forever. Run compaction regularly.

Don’t:

  • Don’t use as a generic backend: It is specialized for sync. If you don’t need sync, Postgres/Mongo is often simpler.

References