Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
640
Introduction To TouchDB
snej
6
3k
Other Decks in Programming
See All in Programming
CSC307 Lecture 01
javiergs
PRO
0
690
Oxlint JS plugins
kazupon
1
860
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
680
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
AI時代の認知負荷との向き合い方
optfit
0
150
「ブロックテーマでは再現できない」は本当か?
inc2734
0
940
dchart: charts from deck markup
ajstarks
3
990
今から始めるClaude Code超入門
448jp
8
8.6k
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
120
Featured
See All Featured
Thoughts on Productivity
jonyablonski
74
5k
How to build a perfect <img>
jonoalderson
1
4.9k
Designing for Performance
lara
610
70k
The browser strikes back
jonoalderson
0
360
Paper Plane
katiecoart
PRO
0
46k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Prompt Engineering for Job Search
mfonobong
0
160
Embracing the Ebb and Flow
colly
88
5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
How GitHub (no longer) Works
holman
316
140k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
90
Designing for Timeless Needs
cassininazir
0
130
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