- RavenDB 2.x Beginner's Guide
- Khaled Tannir
- 370字
- 2025-04-04 22:27:50
How RavenDB works?
When you are using RavenDB, basically you have a client application that communicates with a database server. The client application will communicate with RavenDB database server over HTTP. It will look like any web service and REST (REpresentational State Transfer) based web service. REST is an architecture that uses the strengths of the web to build services. It proposes a set of constraints that simplifies development and encourages more scalable designs. In REST, resources are identified by a unique URI (Unique Resource Identifier).Client applications interact with resources using four main HTTP verbs.
The following figure illustrates basics of RavenDB client/server application architecture:

Tip
In the RavenDB architecture model, the data is communicated across the network in JSON format from the server to the client.
RavenDB can be launched in different modes. It can be launched in:
- Console mode: This mode is good for learning and testing.
- Hosted by IIS (Internet Information Server): This is probably the most common scenario to run RavenDB in a production environment.
- As a Windows Service: RavenDB will create its own HTTP server and process all requests internally.
- Embedded mode: In this mode, RavenDB will be embedded in your application and may run completely in memory.
Also, RavenDB comes with built-in authentication functionality and it supports two types of authentication:
- Windows authentication: This authentication method is chosen when a request needs to be authenticated and no other authentication method is detected.
- OAuth authentication: OAuth is an open authorization framework that enables application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the application to obtain access on its own behalf.
As stated, the RavenDB databases were designed with multi-databases support. In order to do that, RavenDB will only keep one database open, the active database. When accessing a database for the first time, that database will be opened and started, so the next request to that database wouldn't have to be opened again, which is good for performances. But if a database hasn't been accessed for a while, RavenDB will clean up all resources associated with the database and close it.