-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Source connector tutorial #1428
Conversation
…/source-connector-tutorial
aa75ba0
to
635bcd6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we walked through this together. it is good! sherif is still processing some feedback but approving to unblock for when he is ready.
.2 is very controversial, I strongly disagree with it. Especially if the tutorial is "building a new connector". If this becomes the reference, it is counter-productive with what we are thriving to become. If it was a tutorial about Airbyte protocol then why not. But if it is building a new connector it should use the recommended way instead of starting from scratch. Regarding the maintainability, should we link to files instead?, to minimize the drift that will happen? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a comment about it
@michel-tricot would it change your mind if we:
The tradeoff of using a vanilla python implementation is that it is the lowest possible barrier to entry across all languages (including Python because you only need to absorb the one file being edited throughout the tutorial) at the cost of not being representative of a "prod" connector in any language. If we go the other way (fully use python helpers and inherit base docker images), for a newcomer to Airbyte the barrier to entry is higher because they need to understand the python & docker dependencies in addition to everything else in the vanilla tutorial. I think I would be persuaded to do a more productionized Python version if our current dependencies were visible to the user. But right now they are too transparent, specifically:
|
I really don't want to lose this tutorial. You can definitely argue whether this should be the "official python tutorial" or the "learning to develop with airbyte" or "getting started". I think this tutorial does a good job of meeting a developer at their existing mental models. This is what I wasn't able to successfully communicate on Friday about being thoughtful about abstraction. Abstraction in this case helps us (airbyters) write code faster and more maintainably. But for my money, if you have not worked with Airbyte before, the tutorial Sherif has written is more approachable and faster for going from 0 to something that works than trying to induct someone immediately into all of our abstraction. There is a lot of power in showing how much you can do with airbyte and just the python standard library. This is where can meet the contributor closest to their expectations. Let's not lose it, even if we want to promote a different tutorial using our abstraction. I think we can better take int account how abstraction affects superusers writing maintainable code faster and new contributors learning us from. Some examples of things we get here versus the abstracted version is:
|
Agreed with your point. It is more of a "anatomy of a connector". Don't want to lose it either and we should move forward with it. It is just a matter of finding the proper name for this tutorial |
on the following page, click the "add destination" button then "add new destination": | ||
![](../.gitbook/assets/newsourcetutorial_add_destination.png) | ||
|
||
Configure a local CSV destination as follows: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's use the local Json here, local CSV is very hard to leverage with all the quoting logic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
% name
…/source-connector-tutorial
What
Reading Order
source.py
<-- the final state of the connector built in the tutorial