OpenFn / apollo

GNU Lesser General Public License v2.1
0 stars 2 forks source link

Should we rewrite in Typescript or Elixir? #39

Closed josephjclark closed 7 months ago

josephjclark commented 9 months ago

The gen project is currently written in Python. There are four layers of the project:

The thing is, looking at the codebase, I think the only thing that has to be python is the fine tuner.

The first three layers are really just http layers, serving and calling hosted services. There's no benefit to those that I can see in python. I'm sure wrapper libraries are available for elixir and node but even if not, we could create a http wrapper.

Given that we're not a python house, are we wrong to maintain this python code base?

This is an issue to discuss the, uh, issue.

Python Advantages

TS/Elixir Advantages

Solutions?

The obvious answer is that the web layer should node or elixir and that the AI layer should be python. But of course you have to get those layers to speak to each other and we have no mechanism for that. HTTP I guess.

If the http layer is sufficiently light then I don't mind it being in python, which biases the repo toward ML engineers, which is good! We may have to do some API key processing but perhaps we could offload that out of pythonland.

josephjclark commented 8 months ago

I'm convinced that the answer is here is: keep the python ML stuff, but rewrite all the server stuff in typescript

josephjclark commented 7 months ago

See #41: we're gonna have a Typescript web server but leave the AI stuff in python.