[WIP] Support task execution of WebAssembly binaries #5600
Replies: 2 comments 3 replies
-
I actually think this is a future that I want to work towards, but IMO the eco system is not mature enough yet. So lets try out an experiement. I will try to provide 2 phases of exploration here, 1. An experiment that proves that it can work and helps us design the API experience 2. What it would need for the final version to work Phase 1: Setup an experiment.Caveats / Caution:
Beneifts
Objective:One should be able to execute WASM binaries as tasks Motivating examplewasm_task_1 = WASMTask(
name=...,
binary_uri="s3://....",
inputs=kwtypes(x=int),
outputs=(int, str),
metadata=...,
)
wasm_task_2 = ...
@workflow
def my_wasm_wf(x: int) -> int:
u, v = wasm_task_1(x=x)
return wasm_task_2(u=u, v=v) To execute
OverviewWe can use something like wasmer-python, as the runtime to execute the wasm binaries. The reason to chose this runtime is so that the runtime is in python and we can easily test things. Write a New WASM runtime Flyte Agent
Execute locally |
Beta Was this translation helpful? Give feedback.
-
Phase 2: Real runtimeThis is all hypothetical. Steps
What else is needed |
Beta Was this translation helpful? Give feedback.
-
This is currently intended to facilitate discussion of some experiments designed to scope out what might be required to support task execution of WebAssembly binaries. If it makes some progress we'll complete the copy of the RFC template below.
RFC template draft
Support for task execution on WebAssembly binaries
Authors:
1 Executive Summary
A short paragraph or bullet list that quickly explains what you're trying to do.
2 Motivation
What motivates this proposal, and why is it important?
Here, we aim to get comfortable articulating the value of our actions.
3 Proposed Implementation
This is the core of your proposal, and its purpose is to help you think through the problem because writing is thinking.
Consider:
4 Metrics & Dashboards
What are the main metrics we should be measuring? For example, when interacting with an external system, it might be the external system latency. When adding a new table, how fast would it fill up?
5 Drawbacks
Are there any reasons why we should not do this? Here we aim to evaluate risk and check ourselves.
6 Alternatives
What are other ways of achieving the same outcome?
7 Potential Impact and Dependencies
Here, we aim to be mindful of our environment and generate empathy towards others who may be impacted by our decisions.
8 Unresolved questions
What parts of the proposal are still being defined or not covered by this proposal?
9 Conclusion
Here, we briefly outline why this is the right decision to make at this time and move forward!
10 RFC Process Guide, remove this section when done
By writing an RFC, you're giving insight to your team on the direction you're taking. There may not be a right or better decision in many cases, but we will likely learn from it. By authoring, you're making a decision on where you want us to go and are looking for feedback on this direction from your team members, but ultimately the decision is yours.
This document is a:
This document is not:
Checklist:
Recommendations
Beta Was this translation helpful? Give feedback.
All reactions