Just piggy-backing on what others have said: Where CouchDB is really great in my experience is for 2 or 3-tiered webapps:
You can replace the data-tier's REST interface, app server, and relational DB all with CouchDB, and you pick up a very scalable and distributable system to boot.
But in many applications you will need something "in front of" CDB to do additional business logic and processing, e.g. Java webapps, RoR, etc.
Where it gets cool/confusing is that you can do a lot in the web-tier/client via CouchApps hosted directly within CouchDB. You can solve a surprising number of needs with just CouchApps, but it's not a full replacement for other type app servers IMHO.
However I'd try not to confuse CouchDB as merely the "app server for CouchApps" - it would still be great as just a DB, even without couchapps!
Hope this helps. On 8/11/10 10:43 AM, Victor Stan wrote:
So in going through the CouchDB book, and playing a bit more with it, as well as thinking about the needs of my own projects I came to realize that perhaps there are some things that I need to better understand or that couch db may not be able to handle because of it's inherent nature. I will like it of you folks helped me shed some light on these discoveries/opinions... The way I see it now, Couch DB is a really good platform for creating highly scalable apps that are restricted to the data in the database, and whatever JavaScript can do in a web browser. This means that Couch DB can do anything that is implemented in a web browser like HTML, CSS, SVG, Web3D/webGL(in the future/nightly builds) and whatever documents exist in the database. However, what CouchDB can't handle is anything that needs to be computed, which relies on specific libraries, outside the scope of CouchDB itself, such as for example, image processing, video/audio processing/encoding, cryptography(although maybe some js options exist) This means that CouchDB can excell at information and data that is stored exactly in the way that it is meant to be displayed (if it is not computed on the fly, or text) but can't handle any 'heavy' computation on binary data. This would limit the extend that CouchApp can be seen as a true 'application' development platform, to the extent that it is pretty much limited to dealing with database introspection, input/output, but no complex computation (that is beyond map/reduce)... How much of that is right/wrong? I appreciate all enlightening information from you! Victor Stan
