JetBrains was gracious enough to let me record an introductory webinar last week on the Marten project that lets .Net developers successfully treat Postgresql as a fully ACID-compliant, document database and event store. The recording posted this morning and there’s a link to it right below:
Questions from the Webinar
These are some of the leftover questions we weren’t able to get to during the webinar:
Is there an ability to do faceted searches in Marten?
I don’t know why, but I just couldn’t make out the word “faceted” during the talk and this one slipped through.
In Marten itself, no, but we’re sitting on top of Postgresql that does support faceted searching. In the longer run, we’ve talked about having some easy to use facilities that allow you to either “project” a Marten-persisted document type to a flat database view or to possible write a “read side” table for reporting during document writes. My attitude on these kinds of features is to try to lean on Postgresql wherever possible to try to keep Marten’s already very large feature set and codebase from getting (more) bloated.
Have you any experience running Marten against Citus?
No, but I’d be very curious to see how that goes. I’ve purposely put off any kind of software based sharding with Marten in hopes that Citus just works. Volunteering? 😉
How did you convince your company to build marten from the ground up instead of using existing docdb?
Marten was originally conceived of and executed as a near drop in replacement for our existing document database (RavenDb) that was causing us quite a few production issues. At the time, we theorized that it would be easier to build an in place replacement for RavenDb than to convert a massive, existing project to some completely different database and persistence framework. We were a very OSS-friendly shop at the time, and Marten was actually my then manager’s concept.
Can you extract values from the json in explicit table fields?
Marten can only work against tables that it controls with an expected structure, so no, sorry.
Can we use map-reduce queries like in RavenDB? And is there async index creation, with map-reduce?
Indexes are just Postgresql indexes, even when calculated against a JSON search. We don’t directly support map-reduce, and I don’t actually think we’ll need to in the long run. See the section on faceted search above too.
Will you be posting the code used in the webinar somewhere?
Yep, it’s in GitHub here.