Overall Satisfaction with RavenDB
For me, RavenDB is the best database currently available.
RavenDB is a document database written in C# / .NET (Core) which is also the technology we use for our backends. It is super easy to configure a RavenDB server / database from C# code. This gives extra compile-time safety compared to other DBMS that use script languages like e.g. SQL. Furthermore, being a document database, I do not have to deal with the Impedance Mismatch that comes with any RDBMS. The entities that I store and load from RavenDB more closely resemble the code that I would actually write as an O-O developer. Nonetheless, I have ACID support in RavenDB, something that is not quite as well implemented in e.g. MongoDB.
RavenDB can be easily integrated in automated tests with their RavenDB.TestDriver package. This makes integration tests on CI pipelines especially easy as we do not have to supply e.g. a Docker image that provides a corresponding database server instance.
With RavenDB, the RavenStudio comes directly as a web frontend with the server. I do not need to install tools like SQL Server Management Studio or SQL Developer to get quick (scripting) access to my RavenDB databases. Furthermore, the free edition of RavenDB has less constraints than competitive projects (e.g. unlimited database size) and even if we need to buy a paid license, the prices are way more acceptable than from other big vendors.
All in all, RavenDB allows us to deliver software faster for our customers by making our data access layers easier to design, implement, and test.
- Document Database - no Object-Relational Impedance Mismatch
- ACID support that is optimized for performance
- Can be easily integrated into automated tests (unit tests)
- Easily configurable via C# code
- Comes directly with RavenStudio - no SSMS or SQL Developer required
- In general low footprint when it comes to memory and disk consumption
- Useful safety nets for new developers - e.g. by default an exception is thrown when you make too many requests within a session
- Configuring the JSON Serializer was a little bit hard in one project
- Creating custom indexes from several documents can sometimes be a bit cumbersome
- It's easier to teach new developers how RavenDB works (in contrast to SQL)
- RavenDB has unlimited DB size in a free license - so we can stay longer on that
While MongoDB is in general more popular, I cannot fathom why that is. If you want ACID support (and as a developer, you'll always want that), MongoDB is way slower when compared to RavenDB. Furthermore, RavenStudio is just integrated, while
Against other RDBMS, the O-R Impedance Mismatch is the main factor that drives us towards RavenDB.
Do you think RavenDB delivers good value for the price?
Are you happy with RavenDB's feature set?
Did RavenDB live up to sales and marketing promises?
I wasn't involved with the selection/purchase process
Did implementation of RavenDB go as expected?
Would you buy RavenDB again?
As a C# / .NET developer, it is pretty easy to configure the RavenDB server /databases from code. RavenDB comes with the top-notch RavenStudio which gives me quick access to all the things that I can configure - no extra software needs to be installed. Furthermore, the memory and disk footprint is pretty small - I even have RavenDB installed on my Surface Pro 4.
The documentation is OK, sometimes a little short. The support itself can be contacted via their website (for commercial support) or via their GitHub repository (if you have questions that target the source code).
All in all, we did not have any major issues with RavenDB so far, neither during development, deployment or in production.
RavenDB is our default OLTP database for new projects - there have to be specific requirements from our customers to not use it. It is a very versatile tool that we can incorporate in many situations.
Granted, we haven't used RavenDB in projects where we have several hundreds of millions or even billions of documents. However, we never had any issues with the performance so far (and we have databases that gather about a few GBs of data in a few months). It might be that RavenDB is also not the best thing for modeling a data warehouse (OLAP) as it is relatively cumbersome to create custom indexes.