What it does
Distributed Workload Management
This problem focuses on finding possible solutions to the issue of managing workloads in a distributed environment with a micro-services based architecture, with emphasis on how these would benefit Apache Airavata. This leads to finding the best way that different micro-services (eg: Airavata micro-services) should communicate and distribute work, in such a way that:
We maintain the ability to scale these micro-services whenever needed (autoscale perhaps?). The architecture achieves fault tolerance. We can deploy these micro-services independently, or better in a containerized manner – keeping in mind the ability to use devops for deployment. Work distribution capabilities (reference)
Decoupling Impedance mismatch Scaling, Elasticity Fault Tolerance (Resilience) Asynchronous Communications Work distribution patterns (reference)
Independently deployable and fully contained Design for automation Design for Failure Auto-Scaling Circuit Breaker pattern Timeouts Pragmatic Concerns (reference)
Business logic should be stateless. Data Caching becomes important. Contributor on-boarding is important. Developers are “humans” Make learning, development, testing IDE compatibility and deployment seamless so they can have some life.