Dear Airavata Developers, Airavata code base has grown organically over many years thanks to your contributions and it served and still serves a larger number of supercomputing facilities and science gateways.
Over the time we have noticed rapid change of modes of usage of Airavata especially moving from classical batch application execution to interactive development and live monitoring of workloads. This forced the current active developers of Airavata to plumb the code to support workloads which were not designed at the first place. Also we want to move from Thrift API to more user friendly API like REST. There are several other major changes required for Airavata from credential support side as most of the supercomputing facilities moved from SSH key based authentication to two factor authentication which made Airavata integration closer to impossible for user-based login. >From the non-functional side, we are struggling a lot to onboard new developers due to increased complexity of the codebase. Considering the above factors, current active developers of Airavata decided to move the Airavata codebase from Java to golang and rewrite the entire codebase from scratch while migrating the learning we had over the time. Luckily, we still have several seasoned developers who have actively developed Airavata codebase since the beginning to help us out to keep the guardrails and boundaries clearly defined while we migrate. Current golang implementation is available on this branch [1] and the first version is to support exact functionalities the current Airavata supports. Then we focus on adding new features one by one and track those in github issues. Please share your thoughts [1] https://github.com/apache/airavata/blob/refactor-single-module Thanks Dimuthu
