[jira] [Created] (FLINK-23039) Support pluggable transports for HTTP endpoints

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-23039) Support pluggable transports for HTTP endpoints

Shang Yuanchun (Jira)
Igal Shilman created FLINK-23039:
------------------------------------

             Summary: Support pluggable transports for HTTP endpoints
                 Key: FLINK-23039
                 URL: https://issues.apache.org/jira/browse/FLINK-23039
             Project: Flink
          Issue Type: Improvement
          Components: Stateful Functions
            Reporter: Igal Shilman
             Fix For: statefun-3.1.0


We've recently learned about a use case that requires using a custom client that dispatches the HTTP requests (due to some internal reasons).

This can be a useful addition to further customizing the exact client code, that suites the user's need. (for example adding company specific tracing information)

This is technically feasible as well, as all it takes is:

1) provide an implementation of this [interface|https://github.com/apache/flink-statefun/blob/master/statefun-flink/statefun-flink-core/src/main/java/org/apache/flink/statefun/flink/core/reqreply/RequestReplyClient.java]

2) extend the ability to configure it from information present at the module.yaml.

 

The current proposal is to add an optional "transport" section to endpoint definition:
{code:java}
- endpoint:
    meta:
      kind: http
    spec:
      functions: com.foo.bar/*
      transport:
        provider_class: com.foo.bar.ClientProvider
        some:
          internal:
            property: 123
      urlPathTemplate: http://bar.foo.com:8080/functions/{function.name}
      maxNumBatchRequests: 10000 {code}
If the transport is not present we assume that the StateFun's pre-bundled transport is present.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)