Typical hosting scenarios
Data modules determine which data and file store 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 setup together for typical hosting scenarios. The most common scenarios are described below. See the configuration guide for how to configure these scenarios.
If you will be hosting your site on a single server, then the default setup will be sufficient (see getting started). You only need to select a data store module. This would typically be a local file LiteDB database, or a (local or hosted) MongoDB database. This setup will also work for a single instance cloud deployment, although we would not recommend a LiteDB data store in this case, because cloud instances may be relocated at any time, possibly resulting in loss of file system data.
In a (non-cloud) load-balanced environment, your data store would typically be a MongoDB database. The default Local File System module is still suitable, with files stored on a network drive or SAN. Alternatively, you could use MongoDB's GridFS file system or one of the cloud-based storage options. The default In-Memory Cache is perfectly fine for load-balanced environments. However, you should use the MongoDB Capped Collection based service bus, since the default Internal Service Bus does not support a load-balanced setup.
For an Azure cloud-based setup, we expect that Azure services will be used for most module types. This includes the CosmosDB data store, Azure Blob Storage, and Azure Service Bus modules. The default In-Memory Cache will work fine, but for very large high traffic websites a Redis Cache may be considered. A cloud-based MongoDB cluster in the same data center is a common alternative for the data store.
As with Azure, we expect an Amazon cloud-based setup to use mostly Amazon services. These are the DynamoDB data store, 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 MongoDB cluster in the same data center is a common alternative for the data store.
Just to emphasize, these may be typical or recommended hosting scenarios, but there is nothing technically stopping you from using these modules in a completely different combination, for example an Azure CosmosDB data store in combination with Amazon S3 for file storage. Please note though that some modules are dependent on each other, for example the MongoDB Capped Collection Service Bus module can only be used in combination with the MongoDB data store module.
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.
Redakt CMS supports this hosting scenario out of the box. See serverless hosting for setting up Redakt on a serverless infrastructure.