Details

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

    Description

      To support pluggable extensions, e.g. custom HTTP clients for remote invocation, we'd like to add a generic way for users to provide their own implementations of various pluggable components.

      This will take the form of ExtensionModule}}s, where a user that is providing an extension implements such a module to be included into the StateFun app. Each {{ExtensionModule may bind multiple extensions identified by unique typenames. Other components of the application, such as functions and IO modules, may access these extensions through their typenames.

      The SPI would likely look like this:

      public interface ExtensionModule {
          void configure(Map<String, String> globalConfiguration, Binder binder);
      
          interface Binder {
              <T> void bindExtension(TypeName typeName, T extension);
          }
      }
      

      Attachments

        Activity

          People

            tzulitai Tzu-Li (Gordon) Tai
            tzulitai Tzu-Li (Gordon) Tai
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: