Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BaseCouch
Search
Jens Alfke
October 25, 2012
Programming
0
230
BaseCouch
Letting CouchDB (and TouchDB) replicate with Couchbase Server 2
Jens Alfke
October 25, 2012
Tweet
Share
More Decks by Jens Alfke
See All by Jens Alfke
Couchbase Mobile 101
snej
0
99
Couchbase Mobile Architecture
snej
2
360
Couchbase Mobile Update
snej
3
630
Introduction To TouchDB
snej
6
3k
Other Decks in Programming
See All in Programming
JJUG CCC 2025 Fall: Virtual Thread Deep Dive
ternbusty
3
500
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
660
Building AI with AI
inesmontani
PRO
1
370
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
820
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
4.7k
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
230
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
130
[SF Ruby Conf 2025] Rails X
palkan
0
380
モデル駆動設計をやってみよう Modeling Forum2025ワークショップ/Let’s Try Model-Driven Design
haru860
0
200
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
22
19k
Level up your Gemini CLI - D&D Style!
palladius
1
130
開発15年のAIネイティブでない 巨大サービスのAI最適化
rapicro
0
110
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A Tale of Four Properties
chriscoyier
162
23k
Become a Pro
speakerdeck
PRO
30
5.6k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Optimizing for Happiness
mojombo
379
70k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Transcript
BaseCouch letting CouchDB (and TouchDB) replicate with Couchbase Server 2
Jens Alfke ~ Oct 24, 2012 Thursday, October 25, 12
BaseCouch Thursday, October 25, 12
BaseCouch Is… a little HTTP listener written in Go (~2500LOC;
my first Go program!) that understands a subset of CouchDB’s REST API: For pull: _changes, GET doc … For push: _revs_diff, _bulk_docs … and stores CouchDB docs in Couchbase Thursday, October 25, 12
BaseCouch Is Not… a full CouchDB-compatible server (no views, no
replicator, other API bits missing) a way to make Couchbase databases accessible through CouchDB Thursday, October 25, 12
IT HAZ A SCHEMA LET ME SHOW U IT… Thursday,
October 25, 12
Schema: Database {“name”: “demodb”, “docPrefix”: “doc:demodb/A9FF:”} cdb:demodb 232 seq:demodb Thursday,
October 25, 12
Schema: Document {“id”: “sample-doc”, “rev”: “3-cfsdklaeip”, “sequence”: 231, “history”: {
“revs”: [...], “parents”: [...], “keys”: [...], “deleted”: [...] } } doc:demodb/A9FF:sample-doc parent 2-9#f(Jq key sha1-X*@! deleted false 3-cfsdklaeip Conceptually, “history” is a map: Thursday, October 25, 12
Revisions/Attachments {“name”: “INVISIBLE SANDWICH”, “year”: 2007, “subtype”: “invisible things” “_attachments”:
{ “img.jpg”: { “digest”: “md5-X&_x3”, “length”: 8032 } } } rev:sha1-X*@! att:md5-X&_x3 Thursday, October 25, 12
Revisions/Attachments Content-Addressable Store No duplicates are stored Efficient for Syncpoint-style
server with lots of similar databases Requires explicit garbage collection Thursday, October 25, 12
Views Used all_dbs all_docs changes all_bits revs atts for garbage
collection } Thursday, October 25, 12
github.com/couchbaselabs/basecouch Thursday, October 25, 12