SpiffWorkflow 是流程引擎,這裡的「流程」有點含糊,在談 SpiffWorkflow 前,先來說說它的流程是哪種流程。

流程

流程的英文可以是 process 或 workflow,或者有時候也常常用更簡化的形式「flow」表示,這些詞彙混用的狀況時常有之,我們也都概稱為流程,對於字面上的意思或許可以不深究,但對於應用面可就要計較一番了,對於流程,比較常見到的有:

  • UI flow,這是指用戶的操作流程,通常在 UX 領域可見,典型的應用是 Penpot、Figma 這類設計應用。
  • Data flow,這是指資料流程,目前比較常用於表示大數據的 ETL 流程。
  • Business process,這是指商業流程,也是用戶最能具體感受到的流程,包括人事、總務、採購、業務等各類申辦流程,這類產品又稱為 BPM(business process management)。

其中後兩者比較容易搞混,如果你想搭建的是申辦、簽核系統,那就應該找 business process 方案,如果你想搭建的是資料流處理系統,那就應該找 data flow 方案。

對於 data flow,比較著名的工具有 Apache Airflow,它是以 DAG 為概念的資料流程執行工具,它的設計模式決定了它的使用姿勢,它當然可以有分支也當然可以有人為決策,只是相較於專門的 business process 方案,要跑平行簽核、多重指派,在 Airflow 要實現這些得花更多力氣罷了,就像你不會在 PowerPoint 寫文件,也不會在 Word 寫程式一樣,不是不能,只是不適合。

繼續閱讀