Data modules determine which data and file storage is used, and how Redakt instances communicate. Every module type can be swapped individually, without depending on other module types (*). However, in practice, some combinations of modules are usually set up together for typical hosting scenarios. The most common scenarios are described below. See the module configuration guide for how to configure these scenarios, or start with one of the skeleton projects to get up and running quickly.
For an Azure cloud-based setup, we expect that Azure services will be used for most module types. This includes a Cosmos DB database, Azure Blob Storage, and Azure Service Bus in case of distributed applications. The default In-Memory Cache will work fine, but for very large high traffic websites a Redis Cache may be considered. A cloud-based Mongo DB cluster in the same data center is a common alternative for Cosmos DB.
As with Azure, we expect an Amazon cloud-based setup to use mostly Amazon services. These are the Dynamo DB database, Amazon S3 storage, and Amazon SNS/SQS based service bus modules. Again, the default In-Memory Cache will work fine, with the Redis Cache as an alternative for very large high-traffic websites. Also, a cloud-based Mongo DB cluster in the same data center is a common alternative for Dynamo DB.
If you will be hosting your site on-premises, your database would typically be a local Mongo DB or Raven DB database (cluster). The default Local File Storage module is still suitable, with files stored on a network drive or SAN. Alternatively, you could use Mongo DB's Grid FS file system or one of the cloud-based storage options.
For single-instance installations, you do not need a service bus. For distributed/load-balanced environments, you could use the Mongo DB Capped Collection based service bus. The default In-Memory Cache is perfectly fine in both cases.
Several cloud platforms are now offering "serverless compute". This is a type of hosting where you do not need to do any infrastructure setup or maintenance. Usually, this service is billed on a per request basis, meaning you do not get billed when the website is idle. This is a very cost-effective option, especially for websites that do not receive traffic 24 hours per day.
We are currently researching possibilities for full serverless hosting of Redakt applications. Currently, this is not yet available.