I am tasked with importing a large bulk of transaction data and make it available to my Sitecore solution. We're talking roughly 10 million transaction records that we need to be able to utilise real-time on the site. I've already ruled out importing all of this into a Sitecore Bucket or so; it would add massive overhead to the solution which we don't need right now.
We have SOLR, MongoDB and MS SQL Server available as our remaining storage options.
I'd like to keep MS SQL server out of the mix for now - and have it focusing on other tasks. But when it comes to MongoDB vs SOLR, it becomes more difficult to see exactly why I would choose one over the other. Looking at System Properties Comparison MongoDB vs. Solr - they have most things in common .
They are both:
- Document Stores (SOLR is a Document Store specialised for searching)
- Schema-free (we have about 20 different transaction types, more will come)
There are a few things MongoDB offers, but none seem relevant to our solution:
- User/Role access rights
- Immediate Consistency
So I'm left wondering; why would I choose one over the other? Are there performance benefits to consider? (MongoDB being written in C++, SOLR in Java) - scalability concerns? Anything I've overlooking?
To clarify; I'm looking for the key thing - should one exist - that sets these two technologies apart and would allow me to weigh in one over the other. Or reassurance that in this case, it's a case of tomatoes vs tomatoes.
Update: Edited to clarify requirements
- We are receiving between 2500 and 3000 new transactions per day
- 99% of our queries will be of the nature "give me all transactions for
entity x
between datesstart
andend
- On administrator discretion, a transaction migration can be triggered during the day. It's important that data doesn't go offline while this takes place
- Data doesn't live here. It is sourced from elsewhere and worst-case can be re-integrated from ground up in a disaster scenario
- Migration happens nightly. We don't need a real-time view of transaction data