GitHub user Yicong-Huang added a comment to the discussion: RFC: Workflow 
Performance Profiler - full design & implementation walkthrough

I personally very much like this feature, I view this feature as three folds:
1. displays the power of our engine: very interactive, can quickly gather 
metadata during execution. super powerful
2. utilizes our workflow UI, to display/embed information on this UI. 
3. agent suggestions to apply/fix/help user based on the profile results. 
So it is a very good unification of interactive engine + workflow UI + agent. 

I think your draft architecture makes sense. very good start point! to move 
forward, we need smaller steps. we may not need all the features, though. so 
will do the cherry pick carefully.

A few comments:
1. I would not call it profile, at least not towards user. I think we want it 
to be low-tech user facing, and they may not understand profile or profiling. I 
still prefer to keep it as "workflow status". to the end user, it is "what's 
going on with my workflow?". Currently I think we have "state" and "statistics" 
two concepts inside status (please correct me if I'm wrong, or we might need to 
do some refactor). Can you extend a concept of "profile" inside the 
"WorkflowStatusService"? The WorkflowStatusService should become layer that 
contains the ground truth information.
2. it might be good to have different overlay layers, for instance you can 
introduce "heat map" layer. see other current workflow overlay layers, user can 
choose to toggle on/off any of those:
<img width="306" height="518" alt="CleanShot 2026-05-25 at 22 28 57@2x" 
src="https://github.com/user-attachments/assets/3175d5b1-7852-408f-b116-c421b0ca30a2";
 />
The layer will just display the corresponding information from 
`WorkflowStatusService`.


for your suggest plan, I would not considered it in term of PRs, but in terms 
of issues. each issue is a todo task. and each issue could correspond to 
multiple PRs (feature, revert, fix, reapply, doc,  etc.)

So high levelly I suggest we open an umbrella issue (don't name it 
profile/profiler though), and go with those three sub-issues first. 
1. refactor existing service (e.g., WorkflowStatusService) to capture/store the 
information on the frontend which you need to display.  this is purely 
information level, no UI change yet.
2. start to add one overlay layer. could be "heat map": which operator is the 
bottleneck, etc. this is UI visual part.
3. make sure any information displayed on the frontend should be able to be 
reconstructed from the backend. meaning that if user refreshes the page, he/she 
will see the same information. 

we can come back to this discussion after you finish the first three. 
WDYT?

GitHub link: 
https://github.com/apache/texera/discussions/5216#discussioncomment-17057577

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to