I had been considering the potential of using CouchDB. I heard it looked like Lotus Notes which everybody likes to hate. Is true?
Growth and development of Lotus Notes started over two decades ago, with version 1 launched in 1989. It had been produced by Ray Ozzie, presently Chief Software Architect for Microsoft.
Lotus Notes (the customer) and Domino (the server) have been in existence for any very long time and therefore are mature well featured items. It's:
- A complete client server stack with rapid application design and deployment of document oriented databases.
- A complete public key infrastructure for security and file encryption.
- A strong replication model and active active clustering across heterogeneous platforms (someone once demonstrated a domino cluster by having an xbox along with a huge AIX server).
- A built-in native directory for controlling customers that may also be utilized over LDAP.
- A built-in native mail system that may scale to handle countless customers with multi GB mail files, with live server access or duplicated in your area for off-line access. This could interface with standard internet mail through SMTP and has POP and IMAP access built-in. The mail infrastructure is really a core feature that's open to all programs built on Notes Domino (any document inside a database could be mailed holiday to a database having a simple doc.send() command).
- A built-in HTTP stack that enables server located databases to become utilized over the internet.
- A number of integration choices for being able to access, moving and interoperating with RDBMS and ERP systems, having a carefully combined integration with DB2 available permitting Notes databases to become backed with a relational store where preferred.
Backwards compatibility happens to be a powerful feature of Notes Domino which is not unusual to locate databases which were produced for version 3 running perfectly within the most current versions. IBM puts a lot of effort into this and contains a sizable effect on the way the product presently works.
CouchDB was produced by Damien Katz, beginning rise in 2004. He'd formerly labored for IBM on Notes Domino, developing templates and finally completely spinning among the core features, the formula engine, for ND6.
CouchDB shares a fundamental idea of a document oriented database with sights that Notes Domino has.
Within this model "documents" are simply arbitrary collections of values which are saved some how. In CouchDB the documents are JSON objects of arbitrary complexity. In Notes the values are pretty straight forward title value pairs, in which the values could be strings, amounts, dates or arrays of individuals.
Sights are indexes from the documents within the database, exhibiting certain value, calculating others and excluding unwanted paperwork. When the index is build they're incrementally up-to-date when any document within the database changes (produced up-to-date or erased).
In CouchDB sights are build by managing a mapping function on each document within the database. The mapping function calls an emit method having a JSON object for each index entry it really wants to create for that given document. This JSON object could be randomly complex. CouchDB may then operate a second reducing function around the planned index from the view.
In Notes Domino sights are made by managing a choose function (designed in Notes Domino formula language) on each document within the database. The choose function simply defines when the document ought to be within the view or otherwise. Notes Domino view design also defines numerous posts for that view. Each column includes a formula that's run from the selected document to look for the value for your column.
CouchDB has the capacity to produce a lot more sophisticated view indexes than Notes Domino can.
CouchDB also offers a replication system.
Summery: CouchDB is completely new software that's creating a core which has a similar conceptual but much more sophisticated design to that particular utilized in Lotus Notes Domino. Lotus Notes Domino is really a mature fully featured product that's able to be used today. CouchDB is beginning on your own, creating a firm foundation for future feature development. Lotus Notes Domino is ongoing to build up additional features, but does the like a 20 years old platform that aims to keep backwards compatibility. You will find features in Notes Domino which you may wish were in CouchDB, but you will find also features in Notes Domino which are anachronistic in present day world.