A universal spec for a workflow engine?

tl;dr: check out the portability proposal

This is really a stub—nothing more than a conversation starter at this point. I know that the spec is only useful for platform and microservice deployments (or anyone using engine directly), but I’d love to solicit some feedback on the shape as OpenFn sees it outgrowing just our products and implementations.

If you’re keen on integration design and think that a specification which can be transferred between different integration products/workflow-engines sounds cool. Have a read and share your thoughts.

The link again: portability proposal


1 Like

@taylordowns2000 Excited about this concept, and helping folks think beyond automatic data exchange… and getting to the next step of automating data-based workflows (e.g., sending alerts based on data submitted, automating payments).

@Mamadou wondering if there are BPM standards we could leverage in the design of the spec (or at least in the terminology we use)?

Also, I think it would be great to define in the docs what a “workflow automation” tool offers vs. other integration tools/interoperability layers that might focus on routing/orchestration (and perhaps do not offer features for information mediation and triggering automated actions). Perhaps we could provide some examples, i.e., OpenFn vs. OpenHIM.

Re: pulling apart the distinct functionality offered by “workflow engines” (or “process automation tools”, “integration platforms”, etc.) and “data exchange layers” is tough but important work. We’re digging into that right now in the ITU GovStack working group focused on interoperability.

There are some useful distinctions to be made between tools that drive processes by reading and interpreting data inside payloads, and those that never “read your mail”, but merely guarantee the secure transit of a payload from A to B, while logging some metadata about the transaction and keeping an audit trail. Both are super important, but in certain situations you might actually use one tool for your workflow engine and another for your data exchange layer.

https://x-road.global/ is a great example of a “data exchange layer”.