Hey everyone, I'm trying to create a TypeScript de...
# replication-troubleshooting
t
Hey everyone, I'm trying to create a TypeScript destination and I noticed there aren't any docs for this. What's the best way to get started? I'm intending to create a pipeline from Airtable to a custom REST API destination.
p
Tejas! Nice to see you around (remember me from the g2i interview crew days? 😛 ) There are a few Connector Development Kits available listed here https://docs.airbyte.com/connector-development/ - Airbyte officially supports and maintains the Python CDK, which would be our recommended route, but there is a typescript CDK published by Faros that you can also use.
Though we generally see REST APIs on the source side, syncing data to your database/data warehouse, so curious about your use case
t
Basically I want a way to move data from Airtable to another database. This database is only accessible via a REST API.
👍 1
So I tried to understand the Faros CDK and failed. 🙈 What wasn't clear to me was the boundary between custom destination logic and Airbyte. What I'm imagining is a class that extends an Airbyte class with methods to interact with the destination: write, verify, etc. that guides me as a write a way to send data from a source to my custom destination.
(Btw I do remember you from the G2i days!!! Nice to see you again!!!)
octavia loves 1
p
The class you're describing is present in our CDK - here's a quick doc for how you could go about implementing a new destination with it https://docs.airbyte.com/connector-development/tutorials/building-a-python-destination For destinations it mainly just involves implementing
spec
(get the configuration options for the connector),
check
(verify that the config is valid) and
write
to actually process records and write them to the destination. If you want to learn more, that "boundary" you mention is basically the Airbyte Protocol - connectors can be built in any language and are packaged up as a docker container that airbyte calls certain commands on. The CDKs just provide these helper classes like you mentioned to make it a bit easier.
t
This is awesome. Thanks a lot! I'm gonna try my hand at this and see how we go! Thank you for being helpful!
So I have a basic implementation written. How do I test it?