We expose many public interface types in the SDK namespace, such as IProcessingSource and ITableBuilder.
This presents challenges when trying to add new functionality to types in a backwards compatible way. When a new method is added to one of these interfaces, any plugin directly implementing it will see a compilation break. This means the new methods are technically major breaking changes, only being allowed with major version bumps (i.e. 1.0 to 2.0).
To fix this, most types exposed in the SDK namespace should be abstract base classes.
We expose many public interface types in the SDK namespace, such as
IProcessingSourceandITableBuilder.This presents challenges when trying to add new functionality to types in a backwards compatible way. When a new method is added to one of these interfaces, any plugin directly implementing it will see a compilation break. This means the new methods are technically major breaking changes, only being allowed with major version bumps (i.e. 1.0 to 2.0).
To fix this, most types exposed in the SDK namespace should be abstract base classes.