eiffel-community / etos

Eiffel Test Orchestration System
https://etos.readthedocs.io
Apache License 2.0
9 stars 6 forks source link

Rewrite ETOS API to Go #116

Open t-persson opened 2 years ago

t-persson commented 2 years ago

Description

Let us rewrite the ETOS API to Go instead of Python. This change will take a long time and all of it will be implemented in this issue, but in a lot of pull requests. The change will be implemented in the branch 'golang-rewrite' branch and will not be added to 'main' until it is feature complete.

Motivation

We are doing this change because of several reasons. First is performance. We have noticed a few problems with the performance of the Python implementation. Added to this, we also want to add a new part to the ETOS API which is for all components in ETOS to report their health to the ETOS API, which will add more requests and tax the performance of the API event more. These performance issues can, of course, be fixed but the ETOS core team has moved over to Golang as their primary programming language and rewriting to Go just made sense.

Exemplification

Adding a new endpoint for health status would help with a lot of issues in ETOS in terms of traceability and non-happy paths.

Benefits

Rewriting to Go would give increased performance, higher readability and we would be able to add the health status endpoint.

Possible Drawbacks

Rewriting a working code-base is always ripe with problems and this change should not be done lightly. We must keep maintaining the Python code until such a time as the Go code is mature enough.