Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-23039

Support pluggable transports for HTTP endpoints

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • statefun-3.1.0
    • Stateful Functions
    • None

    Description

      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

      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:

      - 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 

      If the transport is not present we assume that the StateFun's pre-bundled transport is present.

       

      Attachments

        Activity

          People

            tzulitai Tzu-Li (Gordon) Tai
            igal Igal Shilman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: