[ 
https://issues.apache.org/jira/browse/FLINK-23600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tzu-Li (Gordon) Tai closed FLINK-23600.
---------------------------------------
    Resolution: Fixed

flink-statefun/master: f11b3f22b83b6683e67d129a76f02641120ec66c

> 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)

Reply via email to