On Wed, 2010-11-17 at 22:18 -0600, Andy wrote: <snip due to Evolution refusing to wrap your message>
Without touching the replication or offline/online stuff as I haven't used it yet... CouchDB is useful any time that you would be using a serialized (aka XML aka JSON aka YAML) column in a relational database. It also works better for mainly read situations and situations where your queries can be prewritten and made into Map/Reduce. CouchDB can be used to augment a RDBMS when you do need to store variable amounts of related structured data, and it wouldn't surprise me that if at some point someone actually builds CouchDB into an RDBMS to handle the serialized columns. The biggest hurdle you have to overcome though is Map/Reduce. Many queries can't be done in Map/Reduce without some thought, and you have to think about the startkey/endkey used to query the views as the "WHERE" portion of your query. It's not nearly as flexible as SQL is, but it definitely works and is a tool you can use when appropriate. Apps I'd use CouchDB for: CRM, log aggregator, any app which has relationships between drastically different object types that should be in the same table due to a basic commonality (and/or the fact that JOINing 10 tables together is not fun), MusicBrainz or equavilent, metadata-heavy apps, metadata aggregators. I'm not sure I'd use the attachment functionality for larger files though. But nothing is stopping you from having a "file_uri" property and pointing it at S3 or whatever.
