Porter
Porter copied to clipboard
CachingConnector is a poor user experience
Having to wrap a connector in CachingConnector just to use caching is not as easy to use as if the cache just worked with any connector. Moreover, cache + connector is a violation of SRP. The cache should be refactored as a separate entity, apart from connectors.
There are a couple of problems with removing CachingConnector in lieu of storing the cache within Porter herself:
- The same cache would be used for all Porter providers, whereas
CachingConnectorpermits different providers to use different caches very easily; possibly even for different resources, with some ingenuity. - We want to cache the raw connection data, but Porter only receives record collections, which is not what we want to cache and cannot be cached easily (if at all) anyway.