Page:
Connector Proxy in 5 mins
13
Connector Proxy in 5 mins
jbirddog edited this page 2024-01-23 06:43:11 -05:00
Connectors and the Connector Proxy
Service Tasks
- Allow communication with external systems
- In the core SpiffWorflow library, implemented using the delegate pattern
- SpiffWorkflow has no knowledge of "http/GetRequest", "aws/UploadFile", "os/SpawnProcess"
- SpiffWorkflow handles parsing extensions, evaluating expressions, delegation to the host app, updating task data
- The host application is responsible for the communication to the external system
Connector Proxy
- Middle man for external communication from the backend of Spiff Arena
- Tailored for the backend, but could be used by other host applications
- Made up of some group of Connectors and a discovery mechanism
- Brokers communication to/from Connectors in a generic fashion
- Allows the backend to remain agnostic to all external dependencies needed for varying deployments, avoiding things like:
- ClientA wants to write to AWS, ClientB refuses to use any app with any mention of AWS
- ClientA requires an old version of SomeSDK, ClientB requires a bleeding-edge version that would conflict
- ClientA really needs to talk to a library that is written in Java
- ClientA has a proprietary library that cannot be included in the backend
- When the backend needs to facilitate a ServiceTask delegate call from SpiffWorkflow it does so in a generic fashion allowed by the Connector Proxy abstraction
Connectors
- Isolated Python packages that conform to a pre-defined protocol
- Do the "actual work" of talking to an external system
- Use data provided by the Connector Proxy to form the needed request
- Make the request using the required protocol/sdk (xero-sdk/HTTPS/FTP/Gopher/Fax/OS System Calls/docker run)
- Use the result to form a response that can be returned through the Connector Proxy
- Examples
External Contributions More Than Welcome
- Connector Proxies and Connectors make excellent targets for external contributions
- Can be written in any language and don't require full working knowledge of Spiff Arena or BPMN
- Can utilize Spiff Arena's docker containers and set a custom Connector Proxy URL on boot