Who are you? (Name, company, position)
In what kind of project / environment did you deploy RavenDB?
We are using RavenDB with Escape Ltd to produce an updated version of their escapetrips.co.uk website for Stag and Hen parties, as part of the update major alterations were made, including moving the project to ASP.NET MVC3 and RavenDB. The public website you see is only a small part of the work that was done, a major overhaul of their administrative backend systems for dealing with sales, customer support and content management was also completed.
What made you select a NoSQL solution for your project?
The major reason for turning to NoSQL and particular the document database approach was the relational database schema was growing too complex for querying and becoming a pain to change.
What made you select RavenDB as the NoSQL solution?
The majority of my experience and my companies experience has been with .NET based clients so it is the natural choice for its first class .NET support. The LINQ API was also a big reason, it was a perfect fit with the way we wanted to work by not forcing us to learn a new language or technology just to use RavenDB.
How did you discover RavenDB?
I attend all the development community events I can and RavenDB had been mentioned several times. I mental made a note to check out RavenDB on any future projects I would be involved in but at the time I was working hard on finishing my degree. After finishing my degree I setup my own company (Orange Lightning Ltd) to follow my ambitions of doing interesting and innovative web development.
I had been previously working with Escape Ltd and around November we started work on a major rebuild and update to their website and systems. RavenDB came to mind again as it provided flexibility to handle changes and complex structures better than a RDBMS would.
How long did it take to learn to use RavenDB?
I feel I had a good understanding of everything within 1 month, I think the majority of how long it took to learn RavenDB is actually understanding document database design and getting out of the RDBMS mind-set.
What are you doing with RavenDB?
We have developed a public facing website to serve custom content for our client’s Stag and Hen website. As well as designing and overhauling administrative systems they use daily to run the business.
What was the experience, compared to other technologies you used before?
Installing RavenDB was a real moment when realising we just had to run an exe and that data is stored where you expect it, moving the data around is simple and deployment is easy. After years of doing SQL Server installations and configurations this is a really great feature that makes me dread having to run the SQL Server installer.
Dealing with changes to a SQL Server database combined with an object mapper like Entity Framework is a pain. With RavenDB if we add a new property it handles that itself, doing updates to documents and just working. This makes deployments less stressful and painful.
What do you consider to be RavenDB strengths?
The major strength of RavenDB technical wise is its design and functionality. I found RavenDB got out of my way when developing but actually stopped you when you did stupid things, this was a refreshing experience to have a tool perfectly balance the two. Oh, the blazing fast performance is good too!
Non-technical wise, the community and team behind RavenDB are brilliant. Friendly help and support are readily available which is great when you are starting out and have lots of questions.
What do you consider to be RavenDB weaknesses?
Learning how to properly design for NoSQL is a challenge. I’d like to see more discussions and tutorials around the mind-set and how to design for RavenDB in particular.
Now that you are in production, do you think that choosing RavenDB was the right choice?
What would you tell other developers who are evaluating RavenDB?
Don’t be put off by the (small) price tag of RavenDB. SQL Server might have a “free” Express edition but you certainly pay for it when you need more than Express can provide.
RavenDB has already started to pay for itself physically, after migration we have noticed a reduced amount in CPU and RAM usage of the client’s VPS even though traffic has increased. In fact, when we update to the next stable release of RavenDB we plan to reduce the amount of VPS RAM we pay for!
It’s hard to measure developer happiness but the groan when changes requests come in have gone and the actual time to do change requests (e.g. adding a property to a form) has gone down dramatically. Our client is saving money as RavenDB allowing us to focus more on adding new features.