Visa Global Logistics
Visa Global Logistics
Who are you? (Name, company, position)
Name: Marcus Denny
Company: Visa Global Logistics
Position: Systems Design Manager
In what kind of project / environment did you deploy RavenDB?
It's a web-based logistics execution platform, multi-country. Several hundred active users, so relatively small-scale.
What made you select a NoSQL solution for your project?
We have been bumping up against limitations of relational DB solutions for some time (the application is primarily SQL Server/NHibernate based) As the application has matured and begun heading in more of a DDD/CQRS architecture we saw that NoSQL might be a better fit for us to deliver software more rapidly to the business
What made you select RavenDB as the NoSQL solution?
RavenDB seemed to be a logical next-step from NHibernate as a solution, and fitted well with our emerging architectural environments. We were on a Windows/ .NET server environment so we were able to use existing skills/infrastructure with relative ease
How did you discover RavenDB?
Oren Eini's (Ayende Rahien) talk to the Melbourne .NET users group last year (2011) presented RavenDB and was inspirational - we'd heard about the product but after seeing your demo I was sold :-)
How long did it take to learn to use RavenDB?
We're still very early in learning the product and coming to terms with how best to manage our solution. That said, from the start of a proof-of-concept module to a released working piece of software was less than two weeks.
What are you doing with RavenDB?
Using it to persist our aggregates as documents rather than big jumbles of relational tables!
What was the experience, compared to other technologies you used before?
We love RavenDB. Seriously, it's been a long time since I've seen a team of developers so excited to use a product. The ease of development is great, and the technology fits very well with our development ethos.
What do you consider to be RavenDB strengths?
- Easy to get up and running.
- Very fast.
- Fits very well with our domain model.
- The "safe by default" configuration is making us think more carefully before we write things and ultimately producing tighter, better code.
- The support we have received even prior to purchase has been completely excellent.
- Support for TransactionScope gives us the capacity to handle "legacy" NHibernate functionality and RavenDB functionality as required.
Case in point - a feature I've been working on today is almost done, had we been using our old NHibernate approach I'd be half way through purely through having to muck around with tables and columns and mappings etc. etc.
What do you consider to be RavenDB weaknesses?
Although super easy to get up and running for the majority of cases, there was a bit of a learning curve getting up to speed with the Lucene querying, and there's not a simple "I used to do this in MSSQL (or whatever DB), how do I do something equivalent in RavenDB". In a lot of cases you approach things differently but given this was my first experience of a document DB, a bit of a "migration" would have helped. Still, it's minor in comparison to the huge gains we're already seeing.
Now that you are in production, do you think that choosing RavenDB was the right choice?
Absolutely. Have not regretted the decision for a moment.
What would you tell other developers who are evaluating RavenDB?
Jump in and have a go with a proof-of-concept and see how much easier it can make your life.