Porter
Porter copied to clipboard
:lipstick: Durable and asynchronous data imports for consuming data at scale and publishing testable SDKs.
This important feature is needed because, although we have a mechanism for marking exceptions that extend `RecoverableConnectorException` as recoverable at the connector level, exception may need to be treated as...
Following up on the TODO comment from #41, this PR doesn't pass the resource to `Provider::getConnector`, but rather, just the resource's type. I don't feel comfortable passing the entire resource...
This PR proposes implementing [DeepCopy](https://github.com/myclabs/DeepCopy) to avoid placing the burden on users to implement `__clone` in their transformers. However, that library currently suffers from a blocking issue (myclabs/Deepcopy#62) that prevents...
The readme is written in a framework-agnostic way, as if one were to just use Porter in isolation, which is a good default tone to take since it makes no...
Although we normally add a provider to the container by its class name and expect a single instance of each provider in the container, there are many valid use cases...
A recent high-concurrency import, that fails catastrophically when the target service is down, indicated with an integer overflow that somehow state is being shared across the default implementation of the...
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...
Currently Porter believes resources should always want to return structured data as an array. However, there may be use-cases where structured data is either unavailable or undesirable. I am yet...
After rewriting a 4000 word manual for Porter v4 I didn't really feel like writing about `FetchExceptionHandler`s. This feature will seldom be required, and for those whom do need it,...
Dev mode
The introduction of a developer mode would allow for an opinionated preset to be applied to Porter's features set, in contrast to its defaults, which subsequently enables/disables certain features or...