potiuk commented on issue #14529:
URL: https://github.com/apache/airflow/issues/14529#issuecomment-1132842410

   There are two major differences:
   
   * environment where the command runs
   * mechanism of feedback to the user when there are problems.
   
   In this case again you have human running the command and terminal where the 
operation is run (and human overlooking and reacting it) rather than webserver 
UI. 
   
   Webserver - almost by definition handles short "requests". While in terminal 
you can run long tasks because  - well - you have an open terminall - that 
serves as the environment where the job runs. Then you have also a feedback 
mechanism - you can print logs and errors to the user and let the user read the 
logs and manually decide how to react on those problems. You can see that this 
and that manual task failed and run manual commands that will fix the problem. 
It's a super-low level interface that requires constant attention and possibly 
follow-up manual remedy of any problems that will arise.
   
   In Webserver UI this is a completely different story. You expect to send a 
request ("clear") and then something should do  it - you will not stare at the 
terminal and logs, you will likely close the browser or move to another screen 
when you request such operation to happen if it takes more than a second or 
two. this is how web UI works.
   
   And in order to do that you need ot implement much more:
   *process that actually runs the long term operation (most web solutions and 
HTTP connection will have a time limit on running a single request and runnign 
a request that waits for some time is not good
   * this process is likely not going to run in your browser (unlike the 
terminal command) because of the nature of browser UI
   * when it fails you really need to notify they user somehow (because the 
user will likely be already somewhere else or maybe evne close the browser in 
the meantime
   * when there are errors you need to know what kind of errors there will be 
and give the user an opportunity to fix them or acknowledge that the problem 
does not need fixing - sending logs is useless because that would mean that the 
user will have to manually react on any log -entry - which means finding the 
right task and performing an action. So you need to implement the whole 
mechanism of communicating with the user and allowing the user to react to 
problems that might happen. If you have one or two tasks, this seems easy, but 
when you have 100s or 1000s tasks then such "request" can take many minutes to 
complete and produce 100s or thousants of errorrs to deal with, so you have to 
prepare a solution that will let the user effectively deal with those if you 
want to make into a "proper UI" feature.
    
   From In the command line it's perfectly fine to tell the users - "those are 
logs of your command - deal with it" . In the UI, you need to implement proper 
UI for that. 
   
   This is precisely why we have no "backfill" implemented in the UI - only as 
a command line.
   
   And @asitstands - if you think that things are easy - there is nothing to 
prevent you from implementing it. Feel free. It's very easy to tell that 
something is "easy" and ask otehrs to do that, and very different thiing to 
implement it itself. Airflow has more than 2000 contributors and anyone can 
contribute anything - providing that it will pass the review.
   
   In this case - until all the problems and paths of processing are not solved 
the change will not be accepted. But if you implement, test and prove that all 
of this is fine and that our users will get a great tool to manage multiple 
(sometimes 100s sometimes 1000s entities). I am super happy to accept such 
change.
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to