I am frustrated and finally ready to hear the truth (as is usually the case after I've exhausted myself trying to answer the question independently.. "Did I make the right choice?"): I built a web analytics application using CouchDB. Should I have used something else?<p>[more detail]<p>I've had a great time working with CouchDB, and the guys behind it have been enormously patient helping me along on a case by case basis (I have refused them the right to tell me I should use something else, because I needed to understand why myself. Doubt is a cancer). I have rebuilt the entire back-end several times confidently, and concisely. On top of that, I'm primarily a front-end developer, so to have gotten this far is without a doubt something the CouchDB team can brag about (I can hardly manage the basics of MySQL without a cheat sheet).<p>But in my "smallest big client" tests, I haven't been impressed with what speeds I've gotten and fear launching in this state would highlight my lack of qualification to enter the market. Still though, I have pressed on. Maintaining the logic that not finishing is not an option (I have other ideas that are simpler to build).<p>So far, CouchDB has nailed real-time. The _changes makes something that seemed like a Trojan horse of complexity, as simple as a callback (when paired with NodeJS). The learning curve was slow, but ramped up quickly (remember I'm coming from no NoSQL experience). Additionally there was never a database problem I came across that wasn't due to my own error. The problems I'm having are with representing historical data quickly.<p>I completely accept that I may have botched some small detail, or missed the big picture during my implementation.. But for the number of iterations I have gone through, I feel like I should have nailed it by now. I am at least confident of that.<p>Knowing what I know now, I'm certain I can make use of some high level insight. What do you think? Was CouchDB a silly choice for my application?