I am writing a forum component for a site and would like to keep track of what topics/questions a user accesses so that other topics/questions can be recommended based on said users previous choices.

I'd imagine one individual data/row is not very important, where it'd absolutely necessitate ACID properties on every single entry; not to mention when the user-base grows large(on the order of millions, or tens of millions), this data set will surely explode. Is this then a case for using say, MongoDB? What is the advisable general approach for something like this or votes?

  • Do you intend to run the recommendation engine online (i.e. on each pageview) or offloaded as a batch process with the forum component?
    – matiasf
    Commented Jul 10, 2014 at 13:03

1 Answer 1


In general, clustered-NoSQL databases offer you better horizontal scalability. So, as you scale you can get higher capacity (both memory & compute power) by simply adding new nodes. So, it will be a good insurance for the future.

When it comes to ACID properties, NoSQL databases offer flexibility. So, it boils down to how much ACIDness you want and how much performance you are willing to give up for it. Seems that you do not need very high level of ACID. I am sure you can get good performance in lieu of that.

PS: I do not want to comment specifically about MongoDB. You should do your research and choose the NoSQL db that fits your performance & functional needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.