Composable Modules

Composable Modules are functional blocks that have multiple inputs and outputs. A module is analogous to a function in any programming language. A module takes in one or many inputs, and produces one or many outputs. These outputs can then be connected to any number of other module inputs.

A module is an atomic processing element with strongly typed inputs and outputs. All information required for a module to execute is retrieved from its inputs through connections. Modules can be reused easily and interchanged with other modules.

Each input and output on a module has a name, description and a type. Inputs and outputs are strongly typed. Objects of the same type can be assigned, and objects having types that extend base types can be assigned to inputs of the base types. For example, outputs of types ‘integer’ can be fed into a module input of type ‘object.’ Convertibility is also permitted. For example, if a DataFlow author connects an output of type ‘string’ to an input of type ‘integer,’ then the system tries to perform the conversion automatically. Note that this can result in exceptions during the running of the DataFlow application. Composable is currently using the built-in conversion framework in the type system, and new input and output types can register conversions by creating casting operator.

First-Class Modules

Composable includes hundreds of first-class modules that are developed by the product team and shipped with the product. First-class modules are found in the Module Library, and classified under a specific category. For example, modules for Image Processing can be found under the Images category, and modules for integrating with Git can be found in the Git category.

Application Reference Module

Custom modules may be created by creating a new DataFlow with externalized inputs and outputs. For more information, please see DataFlow Reuse. These Application Reference Modules may then be found under the My DataFlows or Search All DataFlows categories in the Module Library.

Custom Module Extensions

Custom modules may also be created in code and brought into the Composable platform as Custom Module Extensions. To do this, developers may install a local copy of Composable, and also an IDE such as Visual Studio. Once installed, a "Composable Analytics Plugin” template should be available in Visual Studio under C#. Developers can select this template, select a name and location, and press the OK button. The default plugin template comes with an example module plugin that can be modified to create a custom module with custom inputs and outputs.

After importing a Custom Module Extension into the Composable instance, these custom modules appear as first-class modules in the Module Library.