This blog is now running RavenDB 4.0
We are currently busy converting our entire infrastructure to the new version. Somehow we gathered quite a bit of stuff internally, so that is taking some time. However, this blog is now running on RavenDB 4.0. It feels faster, but we haven’t done proper measurements yet. Primarily because this blog was written to be a sample app for RavenDB about seven years ago, and the code show its age.
We’ll be working on also upgrading that to a more modern system. In particular, we want to turn that into a sample app of how to properly deploy a RavenDB 4.0 application for the modern world. This means that beside actually talking to a highly available cluster, the blog itself is going to be distributed and highly available. The idea is that it would be nice to not take down anything while we are updating stuff, but at the same time, the blog is small enough that it makes it possible to talk about its high availability features without drowning in details.
True work on that is going to start next week, and we would appreciate any feedback on what you are interested in seeing. I’ll probably make that into a series of posts, detailing how to take an existing RavenDB application and move it to RavenDB 4.0, adding all the nice touches along the way, ending up in a distributed and highly available system that can be deployed to production and survive all the nasty things going on there.
So please let me know what you’ll like us to cover.
Comments
We forgot to include the full id of the blog post, so when this one came up, it initially brought 404 errors. The issue was in the blog engine assuming that the id is always numeric, which isn't true for 4.0
Why is ID of the post needed at all in URL? AFAIK, the only usage is for locating post in the database. But, it would be great demonstration of performance to show how system based on RavenDB 4 does not need such shorthand.
Also, ID in the URL means that some future data migration might break URLs.
And on top of everything, this blog implementation ignores url after ID is parsed, which means malicious URL like this one https://ayende.com/blog/181057-C/ravendb-is-slow could be constructed and be operation.
So...how about completely eliminating ID from URL in the favor of simple index in RavenDb4 ?
Dejan,
a) How would you refer to a specific blog post? Remember that this is needed quite often, whatever you are coming from RSS or browsing the main page. b) The slug there will be fixed if you try to browser it.
Indexing the URL for a given document would be the obvious way. Of course this needs to be unique. Cannot see any problems in that?
Duckie, Blog post names are not unique, however. "Happy new year" repeats, for example
Sure, but the blog post title and URL does not necessarily have to be the same, this is the way i solved it. "Happy-new-year-2017". Of course a matter of making it user friendly.
Duckie, You just created another form of a unique identifier, and given that there already is one, I don't see why
Dejan covered the reason for doing this. SEO friendly URLs are also important for most people.
Hi Oren,
From there, would love to see highlights of the code base for things like - Document Store vs Session and what is DI'd - simple modelling.
Sure, these are all newbie topics but in 2017 we had heaps of heavy, technical posts ... which are great. But there's heaps of newbies out there that just need quick starters and foundation stuff. Sure these are/should be in the docs but having a sample app which relates back to these simple topics is a great way to highlight the product and to re-enforce some of these patterns/product functionality.
@Duckie and @dejan - Not sure if the topic of SEO juice (which is a black magic, btw) is sorta on topic here. Also, StackOverflow urls are
/questions/<unique-id>/<some seo friendly text which is truncated to a fix size>
so lets just leave that heated debate to somewhere else?/me not trying to hate/troll ... but just 'stay on target'.
Pure Krome, The blog is open source, yes. https://github.com/fitzchak/RaccoonBlog
That said, we just updated it to 4.0, the actual architecture is still about 5 years old.
We are going to be upgrading the architecture of the blog and post about it, yes.
Hi Oren, Looking forward to having a look at the code base once you guys update it - a useful series I expect. BTW, 'search' and 'tags' at the top have stopped working properly, which I found out because I was trying to find an old post. Cheers, Ian
Ian, Thanks, fixed.
Comment preview