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.
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.