Synapse is a lightweight execution engine designed to take data from disparate, federated sources and connect it to a process. Synapse is built to run as a local or remote process.
A Synapse workflow, called a Plan
, is comprised of a hierarhy of Actions. An Action
is essentially the definition of a local or remote process and the parameters required to initiate it. Plans are declared in YAML, as follows:
Action:
- Name: {string, friendly name}
Proxy: {uri, remote Synapse node}
ExecuteCase: {enum, status value}
Handler:
Type: {library}:{module}
Config: {ParameterInfo}
Parameters: {ParameterInfo}
RunAs: {SecurityContext}
Where, ParameterInfo
is:
Name: {string, friendly name}
Type: {enum, Xml | Yaml | Json}
Uri: {http:// | file://}
Values:
{Block of directly declared Xml|Yaml|Json}
Dynamic:
- Name: {friendly name}
Path: {XPath or root:path0:path1}
Options:
- Key: {key}
Value: {display value}
And SecurityContext
is:
Name: {string, friendly name}
Password: {ecrypted string}
Provider: {Active Directory | AWS | Azure}
Config: {ParameterInfo}
Essentially, Synapse takes data from various federated sources, provides the data to an action, and executes the action under a given security context.
Component | Description |
---|---|
Synapse.Core | Contains the workflow execution engine and is responsible for initiating calls to sub-processes. |
Synapse.CommandLine | A CLI wrapper on Synapse.Core for local process execution. |
Synapse.Server | A server daemon designed to act as remote Synapse.Core agent. |
Synapse.Enterprise | An API interface to creating, storing, and executing Synapse Plans under an RBAC. Manages exection log-capture and keeps detailed audit logs. |