Github user uce commented on the issue:

    https://github.com/apache/flink/pull/3286
  
    Thanks for this PR. I think it's super cool (and long overdue) to finally 
have this. I think the general approach is sound and has good things going for 
it.
    
    But I see two problems with maintaining the current implementation in the 
long run:
    - Changing a URL in the web dashboard requires that we also change it in 
the history server file generation. It's easy to accidentally break the history 
server and it's cumbersome to write tests when we extend it.
    - We have all JSON generation in the JsonUtil. That results in a giant 
class (as you say) that is really tightly coupled to the handlers but resides 
in a different place.
    
    I think we can word around this by moving the archival logic to the 
handlers. I think it's fair that handlers that want to take part in historical 
archiving implement their archival logic on their own. The handlers would need 
to return their path and also their JSON. That way we keep all the handler 
logic in one place for both the regular frontend and history server. A 
"historic execution graph" might be a simple collection of `path, JSON` entries 
that the history server persists on receive.
    
    Another minor thing is that the final status of the operators is missing on 
the history server. I don't know whether that is a front end issue or something 
is missing in the JSON.
    
    I think it's best to close this PR for now and think about how we want to 
extend this a bit for better maintainability.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to