The overall structure of a Saga program is shown in the diagram below:
Resources are any of the data structures which typically support an engine like this. This includes pipeline configurations, dictionaries, pattern databases (perhaps from text mining), machine learning models, etc.
Resources are provided by "resource providers" which insulate the pipeline stages from having to know the details of the underlying storage technology. Example providers are: "FileSystem" and "Elasticsearch".
Resource providers are configured in the "config.json" configuration file. It contains a "providers" section with parameters for each provider such as server connection strings, username, password, base directory path, etc.
A Key Design Goal: Changing the storage location of a resource will not require changing the pipeline configuration.
For example, you might first develop your NLP program using simple files. But then you move it to a No-SQL database so you have real-time updates. The same pipeline configuration should work in both places.