Open BenGalewsky opened 1 month ago
This looks wonderful - we've been talking around the edges of this, and I like how you've clearly drawn a boarder around what should be extracted here.
One thing I'd add - there is no mention of getting error messages back to the user when various things fail. Before the re-write above occurs, it would be good to at least understand how that will work. Losing, for example, errors from the codegen part would make life a lot worse. This might mean really thinking about this and the database and having some clear internal rules for how errors are reported.
I don't now that this has to be part of this work - but this work has the potential to make the UX worse than it is now.
Problem
Several critical high frequency operations related to transforms are made using REST calls through the single threaded flask app. This has several problems:
Approach
Migrate the transformer manager functionality out of the app and into a message driven microservice. Microservice architecture calls on a clear separation of database concerns within each service. We will respect this by having the app only read transform related tables, while the new transformer manager service will perform all of the writes on:
Assumptions