Hey folks. What’s the rule for language choice on ...
# contributing-to-airbyte
p
Hey folks. What’s the rule for language choice on the server and connectors? From a quick glance here’s what I gathered: • For database connectors -> Java • For REST API connectors -> Python • For airbyte backend server -> Java What’s the justification(s)?
u
the idea is that for connectors anyone can write a connector in their preferred language. also it allows us to opportunistically use tooling or client libraries that only exist in one language. the docker architecture allows us to offer this flexibility.
u
database connectors are written in java because jdbc makes writing a single implementation that we can reuse for multiple databases very easy.
p
REST API connectors we've been defaulting to python because it is very popular in the community and what most contributors want to work in.
u
The backend is written in java because we're more comfortable writing a production service in java than python.
u
Hope that helps!
u
Thanks @charles! This helps a lot.
u
I’ll read up on your docker architecture a bit more, I’m curious how the Airbyte server communicates with the connectors.
u
Nice! this page in our docs might be a good place to start: https://docs.airbyte.io/understanding-airbyte/jobs
p
That’s perfect, thank you.
u
Hi again @charles! pardon my curiosity, is there a reason why you didn’t use kotlin? I’m beginning my journey and I’m soaking as much as I can from you!
u
we talked about this. mostly we had experience with vanilla java and wanted to with a tool we knew.