8 Extending RavenDB
This chapter covers
- How to extend RavenDB
- Server side and client side extension points
- Some common RavenDB bundles
- Writing your own extension
By now you should be comfortable enough with RavenDB to model and build pretty much every type of application. However, it is only when you start using a software in real-world scenarios when you learn first-hand its weaknesses and discover the places where it lacks.
As a general rule, no software should be considered a silver bullet. All products fit very well for several intended scenarios but are completely the wrong decisions for other albeit similar usages. RavenDB is no different; some stuff it is very good with, but in other cases you will either find it is lacking or just not up for the challenge.
For those cases in which RavenDB can actually fit very well but some extra stitching work is needed, you may find extending RavenDB a good solution. In fact, there may already be an extension lying around somewhere that you could find useful.
In this chapter we will look at the extension points RavenDB offers, and showcase some extensions (also called bundles) that you might find useful. We start with server-side bundles, these are the extensions that integrate with the RavenDB server itself. Then we will look at client-side integration points. Finally, we will talk about how you could write your own extension, or a bundle, to introduce additional functionality.