One of the hardest things we have to do it to get people who aren’t familiar with RavenDB acclimatize to it. This onboarding process is typically done by doing something tangential to RavenDB, which allows the new guys to learn RavenDB while doing something useful.
Past examples of this is the demo website for RavenDB, internal tools, etc. In the case of Idan, since he had an extensive Python background, we decided to give him as the intro task the job of writing a RavenDB client API in Python. This has several advantages:
- Instead of shifting rapidly from the environment he knows and is familiar with, we get a much gentler curve.
- In order to actually implement it, he would have to become very familiar with the guts of RavenDB and how it actually works. Obviously that would be mostly on the client, but you can’t really do that without also understanding what the server is doing.
- We end up with a usable Python client.
So, without further ado, let me show you how this looks like:
And the result is:
Which is pretty nice. The Python client API can handle most CRUD scenarios, including full support for replication, failover, dynamic queries, etc.
It isn’t the complete client, like we have for .NET or JVM, but it should do for most needs, and as usual, pull requests are welcome.
There is still a bit of work remaining (documentation, deployment, etc), but this is ready to take for a spin.