[
https://issues.apache.org/jira/browse/FLINK-23600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-23600:
-----------------------------------
Labels: pull-request-available (was: )
> 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
> Priority: Major
> Labels: pull-request-available
> Fix For: statefun-3.1.0
>
>
> 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)