I am playing with the idea of using RavenDB as the data store for an application that will most likely have an HTML UI, a WebService UI, and server utilities that will access the data as well. One reason for using RavenDB is the horizontal scaling it offers through replication and sharding. However, it seems like there are several considerations around running Raven as a windows service or running it through IIS.
- Security - Is the Raven service more secure or will using IIS allow me more flexibility to restrict by IP address, .NET Membership, etc.
- Caching - It seems like IIS is the better choice for this feature
- Architecture - Since I would not want any third party to access the data store would it really make sense to expose Raven through IIS. Also, there would be a business layer between Raven and the various UI's and utilities, so involving IIS seems unnecessary and may introduce unneeded complexity.
- Performance - The IIS pipeline probably has more overhead on each request than a windows service
- Scaling - Using IIS is probably more complicated to scale out across multiple servers as opposed to just installing the Raven service with a small batch file
EDITED
I can understand using Raven's Embedded configuration if all you have is a single web client but when you have several different clients, Raven's API needs to be exposed independently to prevent a single client from locking the data files.