-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove feature flags from ConnectorSpecification
#19855
Comments
Trying to clarify what you call feature flag here, looking at the attributes, they sound like feature supported by the connector more than "feature flag" that I understand as transitional, thinking AB testing for example. Unless I missed something, We may want to change how we store this information, somehow, |
The protocol should focus on attributes that are vital for these docker containers to communicate with each other, not features of the Airbyte platform. There may be a flag in the future that does make sense to put in the In the case of the 3 existing flags, all of them were a mistake from the beginning. This makes them toxic, because they are normalizing a bad pattern:
your example of a user having to too much metadata when creating a source is a good one, but at least in the case of the existing flags, someone who is creating a custom connector would never have to set these fields because they aren't actually part of building a source. |
Double checking that this jives with the ActorDefinition work being done here #19799 |
@evantahler yes! good example of us leveraging the |
I agree, we should be mindful of not trying to put everything there. There are some functionality that impacts how the platform communicates with the connectors, thinking of State type or OAuth for example. Some form of descriptions could help the platform know the expected behavior rather than guessing from the first messages we see. When the discussions on versioning started, one distinction was protocol versioning versus feature support. I think it makes sense to have room for a feature support exchange in the protocol, however, the solution should not require listing all existing features in the protocol definition. Probably an approach more similar to optional headers in HTTP. |
@gosusnp maybe the distinction we need to make is between platform features and protocol features. If we come up with a feature of the protocol that we want to feature flag, then potentially the spec may be a place to put it. But for features of the Airbyte platform those should not be in the protocol. Does that seem fair / clear? |
This distinction makes sense to me. What I want to challenge is that even though they are platform features, they still involve some form of communication between the connectors and the platform. (ie: platform: please tell me what you support, connectors: I can do x, y, z). |
Closed by #18239 |
Tell us about the problem you're trying to solve
ConnectorSpecification
(link) contains multiple platform feature flags. This was a pattern from early on in the protocol that we want to move away from. The protocol should vigorously avoid these sorts of feature flags.ActorDefinition
instead.Describe the solution you’d like
supportsIncremental
from theConnectorSpecification
-- this field should be deleted.supportsNormalization
from theConnectorSpecification
-- this can be moved to theActorDefinition
(unless the destinations team gets rid of normalization entire, in which case it could be totally removed).supportsDBT
from theConnectorSpecification
-- this can be moved to theActorDefinition
.I am creating this issue, because it is pretty common that people see these flags in the protocol and want to add additional flags there. We don't want to do that! Put it in the actor definition!!! Spread the good word.
@salima-airbyte @evantahler -- for visibility.
The text was updated successfully, but these errors were encountered: