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

Reply via email to