The code for this post is available on GitHub
With the release of RavenDb4 and in combination with their Community License and Ubuntu Server Edition it is now possible to deploy a highly available database setup that is free of software licensing costs (server hosting costs obviously still apply)
To demonstrate a possible setup clone my vagrant-ravendb, navigate to the root folder and run
This will reproduce the network shown below: (as an aside, if you haven't already checked out vagrant i highly recommend doing so)
The nice part is that you can perform the setup from a single instance.
As the certificates are self-signed you will need to trust the certificate in your host by running
certutil -importpfx -f -user ./install_files/client.pfx
https://raven1.mooo.com:8080 and enter your license by clicking the 'License Information' in the toolbar at the bottom on the right hand side. (do NOT enter the license on the other nodes as it will prevent them from being added to the cluster)
Manage Server -> Cluster and click
Add Node To Cluster - in the
URL field enter the names of the other nodes e.g.
Your cluster is now setup and should look like
From here you can create a new database
Databases -> New database named
TestDb and use the provided nodejs client application to connect to your cluster.
Navigate to the
/client folder in the source code and execute
npm i tsc node index.js
This app will insert a document into the cluster every 5 seconds:
saved new message with id messages/1-B saved new message with id messages/2-B
In this example you can see the client has connected to Node B (raven2) thereafter the document is propagated to the other nodes in the cluster. You can use this to experiment with the cluster and see how it recovers after you turn the nodes off and on.
To see the specifics of how to setup RavenDb on Ubuntu see
install.sh in the root folder.
I think its incredibly impressive that you can leverage this product to give a free HA database. Let us know your thoughts in the comments.