We are developing a SaaS product with which we want to give our customers the ability to produce “real time” (i.e. users should be able to get response within seconds) reports. The “raw” (i.e. not specifically materialized for reporting) data is in MongoDB and our front-end clients may be native mobile and Web. The question is how do we achieve the functionality in between these components which is to embed in our applications a visual report generated from the MongoDB data. As we see it, there are two options in general:

  1. Take care ourselves for all the stack by “in-house” development and using libraries for specific layers (e.g. UI generation, data consumption, etc…)
  2. Utilize OEM embeddable reporting services which can be given by third parties such as specified here. As a side note, we think that the term “analytics” is an overshot for what we want, that’s why I use the term “Reports” here. Nevertheless, all products use the term “analytics”

We need help with choosing between the approaches. More specifically:

  • How common is the 2nd option? Especially with Document DBs such as MongoDB?
  • What is the criteria which can help with making a decision here? IOW, what are the conditions in which option (1) can be considered as preferred over (2) and vice-versa?
  • 1
    I think you have to go through trial and error in deciding between the two. I'm assuming you're capable of creating the reports yourself or you wouldn't be asking. Tool usage questions are considered off topic, but I'm trying to keep an open mind. – JeffO Dec 8 '16 at 23:34
  • 1
    It had many things to consider... Your budget is one of them; good reporting libraries are not too cheap. Also generating new reports should be considered; it requires quite too much effert for in-house-developed reporting tool that let users to design thier own reports by using given data sources. I guess you should start from the question who will make the report design? Developers or Users? – FallenAngel Jan 24 '17 at 10:14

The answer is really depends on your application's needs and there is no silver bullet solution here.

Example: If your reports contain a lot of aggregative data for example, then probably using mongo would be a challenge, although they have an aggregation framework, but depending on data size it won't be able to proceed within second or two.

Another aspect is how many/ how frequent the reports will be generated. Since mongo is used as a main persistence layer, adding a significant amount of report generation flows ( in general this usually tranlates to many 'heavy' queries) can slow down your main business flows simply because monog will work harder.

There are dedicated NoSQL solutions for this, depending on your needs / budget you can choose Casandra or Vertica solutions.

On the other hand, If you have something pretty straightforward you can start with OEM and just see whether this suits your needs, and then if you recognize that it's not good enough - use your own solution.

Hope this helps

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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