Raven - database for the brain-dead developer
July 20, 2020

Raven - database for the brain-dead developer

Jeremy Holt | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with RavenDB

We use RavenDB exclusively for all our applications. Our applications are developed for the West African cashew industry and include programs to develop business plans for industries seeking finance from financial institutions to easy to use software for our inspectors to perform on the spot quality analysis of containers of cashews prior to shipment. We also develop software to help local laboratories as well as factories perform quality control data collection on the shop floor.
  • Once over the initial learning curve, using Raven requires very little thinking about. Even though it is capable of doing almost anything you can imagine, learning how to LoadAsync, StoreAsync, QueryAsync are pretty much all you need to know to do about 99% of the day to day tasks.
  • Write the POCO for your data - Raven does the rest
  • With v 4.0+ you hardly ever need to write queries - Raven's automatic queries handle about 99% of my requirements
  • In previous versions the documentation was terrible - however, since v4.0 the documentation is excellent.
  • Any minor complaints are generally resolved by the team the same day. I suggested at one time some minor tweaks to Studio (showing the number of items in an array) and they were implemented almost immediately.
  • Nothing really to complain about.
  • Deployment using their very reasonably priced Raven.Cloud means a very low operational cost.
  • Since the database is now simply a "background" task, I can concentrate on my business logic rather than concerning myself with how the data is being stored/retrieved.
Once I had got my head around the concept of a document database it was a happy bye-bye to SQL Server.
Firebird - far too fiddly - I found myself writing a silly API to sit on top of Firebird just to do the most basic things.
MongoDB - in the very short time I spent with it, it seemed similar enough to Raven, but I couldn't see the point of moving over from something I was already happy with.
It's the perfect backend for the lazy brain-dead developer (that's me!).
I know that if I need to do something more complicated, there will be a way for Raven to do it for me.
If I can't work it out for myself, I sure that someone will help me on their Google Groups to find a solution (usually on the same day).
All my applications are basic crud and querying of data. Over the years I have learned (mostly) to model my data to fit the no-SQL paradigm. If you can model the data properly there is no reason not to use Raven. Obviously, if you can't find an appropriate model you should probably look elsewhere.
Without doubt the hardest thing of all using Raven is the modelling - before you give up, look at the lookup features (Load.Include) which effectively allow you to approximate foreign keys. The documentation has an excellent chapter on modelling which is definitely worth reading before one starts with Raven.

RavenDB Feature Ratings

Performance
10
Availability
10
Concurrency
10
Security
10
Scalability
10
Data model flexibility
10
Deployment model flexibility
10

Using RavenDB

1 - Software architect and programmer

Evaluating RavenDB and Competitors

Yes - Microsoft SQL Server.
Too cumbersome and inflexible.
  • Product Features
  • Product Usability
  • Product Reputation
  • Vendor Reputation
Knowing that the support is excellent was probably the most important factor in deciding to use RavenDB. Plus the added bonus of not having to go anywhere near Stack Overflow when I have a question is an even bigger factor.
I wouldn't make any changes.

RavenDB Training

Initially it was a lot of hard work. The hardest thing is to understand the concept of modelling the document. It is a dramatic change from the traditional SQL way of thinking about a database. The actual mechanics of using RavenDB are dead simple - you only need to learn a few simple commands to get up and running.

Configuring RavenDB

I haven't looked at the documentation in a while - but it's worth understanding how to setup a base controller in ASP.NET Core and delegating the saving of the data to the base class.
Other than that, it's just a few lines in the Startup.cs file to setup the database.
Some - we have done small customizations to the interface - What would be great is if Studio would remember the Display columns for a table from one session to the next.
No - we have not done any custom code

RavenDB Support

Because it's first class!
ProsCons
Quick Resolution
Good followup
Knowledgeable team
Problems get solved
Kept well informed
No escalation required
Immediate help available
Support understands my problem
Support cares about my success
Quick Initial Response
None
No - Because the free support on Google Groups answers 99.99% of my questions.
Yes - Yes - some bugs (in versions prior to v 4.2 were fixed the same day) and available in the next build.
Too many to mention.
On many occasions I have asked for help with an apparently impossible problem to solve (bug or otherwise) and had a direct response from Oren Eini himself.
Oren even once did a code revue for me - it took him 20 minutes from me giving him the link. It had taken me a year to write the code. Oh the shame of it - but boy did I learn a lot from reading his comments!

Using RavenDB

Studio is very easy to use and get a quick overview of the database.
ProsCons
Like to use
Relatively simple
Easy to use
Technical support not required
Well integrated
Consistent
Quick to learn
Convenient
Feel confident using
Lots to learn
  • CRUD
  • Queries
  • Indexing
  • The querying thingy that calculates sums, totals, averages, etc.