Tzu-Li (Gordon) Tai created FLINK-23600: -------------------------------------------
Summary: Rework StateFun's remote module parsing and binding Key: FLINK-23600 URL: https://issues.apache.org/jira/browse/FLINK-23600 Project: Flink Issue Type: New Feature Components: Stateful Functions Reporter: Tzu-Li (Gordon) Tai Assignee: Tzu-Li (Gordon) Tai Currently, we have a {{JsonModule}} class that is responsible for parsing user's module YAML specifications, resolving the specification into application components (i.e. function providers, ingresses, routers, and egresses) that is then bound to the application universe. Over time, the {{JsonModule}} class has overgrown with several changes as we progressively adapted the YAML format. * The class handles ALL kinds of components, including ingresses / functions / egresses etc. The code is extremely fragile and becoming hard to extend. * Users have no access to extend this class, if they somehow need to plugin custom components (e.g. adding an unsupported ingress / egress, custom protocol implementations etc). We aim to rework this with the following goals in mind: # The system should only handle {{module.yaml}} parsing up to the point where it extracts a list of JSON objects that individually represent an application component. # The system has no knowledge of what each JSON objects contains, other than its {{TypeName}} which would map to a corresponding {{ComponentBinder}}. # A {{ComponentBinder}} is essentially an extension bound to the system that knows how to parse a specific JSON object, and bind components to the application universe. -- This message was sent by Atlassian Jira (v8.3.4#803005)