What is our primary use case?
We use Denodo in our organization whenever a web service is needed quickly, or where using another technology (such as Java) would take too much time. From our standpoint, Denodo is used in such a way that any consumer can build their own web service based on their data points. There's no need to ask the provider, "I need a web service for X, Y, or Z". Instead, you simply ask, "Hey, I just need the data points". For example, for a table, all you need is to ask the consumer to provide the table name and for whatever service you need, you can build your own web service on top of it.
It takes minimal effort to accomplish this with Denodo and it's an extremely quick process, especially when compared to doing the same thing with Java or any of the other technologies we are using. In fact, you can build a web service with Denodo within 10 minutes. Our web services can also be consumed via different methods where there are multiple possible levels of responses, and each web service can be duplicated to provide for each different level of response. So within 10 minutes, you can build a web service with different variations out-of-the-box.
If you wanted to incorporate just one method in Java or AWS, it would take at least a day to deploy and have it set up to provide responses. But our experience with Denodo is that it only takes a few clicks and it will instantly deploy the web service, and then you are free to use that resource.
As for our environment, there are two editions that we have the option of using. One being the cloud-based version, and the other is a client version which we can download onto our system. Most of our organization is using the cloud-based version, as all the patches are pushed directly to the cloud. Overall, we have about 100+ company members using Denodo, most of whom are product developers.
How has it helped my organization?
We have web services created for each of our applications, and ordinarily the creation of these web services would be dependent on the provider. We would previously ask our providers, "We need web service X, Y, or Z, and we need it by this deadline. Can you produce it by that deadline?" But now, the person who needs the web service can simply build their own based on the data points they are looking for. This kind of mindset is the main reason why we chose Denodo.
What is most valuable?
The best thing about Denodo is that creating and deploying a web service can be done in about 10 minutes, compared to a whole day when it comes to other solutions (such as when deploying with Java and AWS).
It's also really easy to do so in general, because no longer do you need to request the specifics of how the web service is to be created, but instead all you need to do is provide the data points needed and you will have access to a web service that is ready to serve you responses.
Not only that, but you will also be able to duplicate the newly-created web service to be used in different ways with various methods. And all this takes only a few clicks on a single platform, as long you know the data points that you need.
What needs improvement?
There are a couple of areas that can be improved in Denodo. From a stability point of view, sometimes we see issues in the data management functionality. This only happens now and then, however, and usually takes place when we add in our own customization.
There are also certain limitations on customizing Denodo, in general. It would be better if Denodo provided more mechanisms for users to develop custom products where they could easily build in their own logic with automated means. In the case of complex customization, we will usually use Spring Boot instead of Denodo, especially when we have tons of data in production and we need to segregate it based on certain logic. Otherwise, when it's a matter of minimal data points that are required, we will simply build it as a web service instead of writing the same logic in Spring Boot.
A feature that we have wanted since we started with Denodo is to have a fallback option. After we migrated all our web services to Denodo, it would have been nice to have a ad-hoc fallback option where if we ever do want to use something else, that option is available. For example, something where we have those built-in read-only views which we can reuse and, without too much time or fuss, build a web service on top of that by simply plugging in views, details, or any other part of the Denodo platform architecture.
For how long have I used the solution?
I have been using Denodo for one year now.
What do I think about the stability of the solution?
At certain times we have seen some stability issues with the data management within Denodo. It's not all the time, of course, but only sometimes.
When it comes to more complex scenarios, we will typically use Spring Boot instead of Denodo to accomplish our needs. Usually, this happens when we have tons of data in production and we need to segregate it based on some logic.
What do I think about the scalability of the solution?
With regard to scalability, we have different scaling strategies for two of our main products that we're working on. There isn't much difference in data points between these two products, but when it comes to the refreshing of the data, one of the products is refreshed on a minute-to-minute (or second-to-second) basis. With this product, the scalability of Denodo isn't fully up to the mark.
However, on the other product, we have no challenges whatsoever in terms of scalability, especially in terms of response times and accuracy. We have built a lot of web services on top of it with Denodo.
How are customer service and support?
When we purchased Denodo, our architects had a discussion with their support team based around what would be needed to improve things, such as scaling up at a later stage, and they were happy to help us out. We also occasionally write them emails whenever we encounter a challenge such as a code glitch, but otherwise there is no further direct interaction with them for the most part.
Which solution did I use previously and why did I switch?
Denodo is one of the only products we have come across where the consumer can build in a web service without being dependent on the product team or anyone else. If you know the table name, or the data points needed, you can directly go ahead and import the schema and build your web service. Crucially, you don't have to wait for someone else to come and help you build the web service, which ultimately reduces the dependencies between our different teams.
This is, in fact, a main focus point we have come across in our work. In terms of data points, we will typically see 100+ data teams working with independent databases with no platform to connect them all. With Denodo, we can connect hundreds of databases with the data point connection, and it's all drag-and-drop to connect tables from whatever database we need. Then we just export the web service on top of it.
You can contrast this process with Spring Boot where you would instead need to go to a specific team and get access from them first. They would then have to take the name of the table and report it elsewhere in another format.
Of course, we also prefer Denodo for the simple reason that it is cross-platform across the different platforms we typically work with, which have extremely specific conditions when it comes to handling data.
How was the initial setup?
The setup includes what is essentially a kind of software installation. If you go for the cloud-based tool, it's not much of an installation at that, because you just plug in your databases and you're ready to start working with it.
It's very easy and very fast. Basically, you are just plugging in the databases and setting the location of the cloud-based URL which will be shared by your team.
What's my experience with pricing, setup cost, and licensing?
Denodo provides a lightweight 30-day free trial, but when we do courses on top of it, it costs $150 for each person. Even if you're not purchasing the product, I believe there is some kind of reward they will give you in the initial stage.
I, personally, am doing a couple of courses with them and each course costs a different amount depending on the level of the course, such as beginner, medium, or senior. The initial course level costs $150 and the mid-level course goes to $200, and I have seen a couple of courses at $350 as well. These costs are incurred as you enroll in a single course, which lapses after six months.
What other advice do I have?
To people thinking about using Denodo, I would say that you should be clear about whether it fits the level of your architecture in terms of scalability. In cases where you have a low-level architecture, you shouldn't expect to get more results out of it simply by using Denodo.
Essentially, when you're building a product, your environment should be appropriately scaled to fit that product, and Denodo is built for the enterprise level, not for small-scale inter-system users. For example, in our organization, we use Denodo for its web services functionality, but when it comes to similar products in the realm of event streaming, for example, we will instead use other tools such as Apache Kafka, as appropriate.
I would rate Denodo a six out of ten.
Which deployment model are you using for this solution?
Public Cloud
Disclosure: I am a real user, and this review is based on my own experience and opinions.