RavenDB is helping children
Through partnership with churches on the ground in more than 25 countries, Compassion gives the world’s poorest children all the love and support they need, plus the physical and practical help they so often lack. We release them from poverty and give them the tools to build a future in which their own children will be free of the desperate life they were born into. Compassion is uniquely Christ-centred, child-focused and church-based.
Who are you? (Name, company, position)
Sam Jeffress, Software Developer at Compassion Australia.
In what kind of project / environment did you deploy RavenDB?
Processing our web transactions – child sponsorship, once off donations, updates to supporter details – we’re using Raven along with NServiceBus to manage our long running transactions, keep audits of transactions, manage our business configuration and drives our MVC frontend for handling business exceptions.
What made you select a NoSQL solution for your project?
The main thing was the ease of use in storing our objects and removing the mapping to a SQL database.
What made you select RavenDB as the NoSQL solution?
Built for .NET made it an easy choice, I had briefly looked at a couple of other document databases, but their API’s seemed to be a fair bit more complicated, and Hibernating Rhinos for us is a trustworthy name to look to for new technology.
How did you discover RavenDB?
I’ve been following Ayende’s blog for some time and had been interested in exploring the NoSQL movement, so RavenDB made sense as a starting place. We also use NHibernate Profiler, so are familiar and trust the solutions coming out of Hibernating Rhinos.
How long did it take to learn to use RavenDB?
We got up and running within a couple of hours for an actual business function. There is lots we’ve learnt along the way, most recently we’ve moved to optimistic locking and reconfigured how we do session management, and are still yet to explore Lucene, but getting started is very easy.
What are you doing with RavenDB?
Using it to store configuration and business exceptions that are manually processed through a MVC frontend.
What was the experience, compared to other technologies you used before?
Very easy to get started with as there is basically nothing other than starting the server and writing a few lines of code. There is also a fair discussion on StackOverflow of Raven related issues which makes it pretty easy to figure things out. We would have probably used a SQL database which would have involved a lot more setup, configuration, mapping and work to keep the database updated with the changes in our objects.
What do you consider to be RavenDB strengths?
Ease of use to get started, especially in a .NET environment.
What do you consider to be RavenDB weaknesses?
The change in thinking required with querying and indexing when you want to do complex queries. It’s not that Raven doesn’t have it covered, but it’s a new area to learn if you’ve been working with SQL databases.
Now that you are in production, do you think that choosing RavenDB was the right choice?
Absolutely! We’re still yet to work out how some things work such as doing in depth reporting, but that’s more that we haven’t required it yet in our project.
What would you tell other developers who are evaluating RavenDB?
Have a go!