Hacker News new | ask | show | jobs
by Maarten88 3468 days ago
I havent worked with the latest RavenDB versions, but we did some work with older versions.

RavenDB is a document database that (imo) is well suited for more complex web apps, such as e-commerce and publishing websites. It's coming from the .NET world, and is very developer friendly (in that respect comparable to Mongo, but for .NET instead of javascript). It uses Linq natively for queries and indexes, without resulting in the sort of issues that entity framework creates when translating Linq to SQL. After getting proficient in RavenDB, it's possible to write very clean code that does very powerful things.

RavenDB can replace both a relational database and a search database like ElasticSearch. It has real transactions and it wraps Lucene and can do full text searches. Its indexes are extremely powerful, facets, geospatial, full text etc. We built pages that efficiently queried results like "show me all products in category X with properties Y that are in stock in a location less than Z km away from me", based on stock level/location data inside the product document. Indexes are eventually consistent.

With .NET Core, RavenDB 4.0 has now been ported to Linux and OSX and they have an alpha version out. The database itself has been improved and tuned over several years, a lot of work by smart people went into it. I find it really interesting to see how it will fare against the best databases outside the Microsoft silo, and hope to see some good testing of their distributed transactional and indexing features by Aphyr or other reputable people.

1 comments

All indexes are eventually consistent or just lucene ones ? I remember they created a ~clone of lmdb which has transactions (and can build indexes on top of it).
All. It's possible to wait for indexes to be complete using the WaitForNonStaleResultsXxx query options.