2. About Me
• Freelancing Developer with strong focus on
the Web for ~6 Years
• Studies in Computer Science and
Linguistics (not yet finished :-)
• Co-founder of FREISATZ
• Love Rock music and kittens
2
3. About You?
•What do you work on?
• What are you interested in?
• Why are you here?
3
4. Target Audience
• (Let’s see how well this matches the responses to the last slide)
• Webdevelopers, interested in new
technology
• System Architects that look for scalable and
fault tolerant software solutions
• Anybody else is welcome, too
4
5. Forget SQL
• Just for a moment, imagine you know
nothing about relational data, normalization
and other fancy terminology
• You only want to store data
5
14. Documents
• Records of data
• Individual storage elements
• Can have an arbitrary (JSON)
structure…
• …but don’t have to!
• Attachments
• Have IDs & revisions
14
15. Views
• Similar to Views
• Compiled, pre-defined subset of stored
data
• External JavaScript Daemon(s)
15
16. CouchDb Features
Roubust Data Storage Repliaction
REST API User Authentication
JavaScript Views Built on Erlang/OTP
Your Feature Here, it’s
Fulltext Search Open Source!
16
17. Documents
• Individual storage elements
• Can have an arbitrary (JSON)
structure…
• …but don’t have to!
• Attachments
• Have IDs & revisions
17
19. Data Storage
• State-of-the-art storage model
• MVCC with optimistic locking
• Sacles magnitudes better than
pessimistic locking
• Append-only writes
19
20. REST API
• Easy retrieval using a method proven to be
scalable: HTTP
• Exchange in industry-standard formats
(JSON)
• Simple and intuitive interface
20
25. Fulltext Search
• Leverages Lucene
• Reference implementation included
• Simple API to plug in other search
technology
25
26. Security and
Authentication
• Not yet implemented
• Will have
• Standard user authentication for
applications
• Document ownership
26
27. Replication
• Bi-directional replication (or
synchronization) between any number of
instances.
• Online, and:
• Offline(!)
• Including consistent conflict resolution
for disconnected systems. Wow!
27