BizDevOps?—?the true value proposition of workflow engines

转自:https://blog.bernd-ruecker.com/bizdevops-the-true-value-proposition-of-workflow-engines-f342509ba8bb

Whenever you implement core business logic you have to discuss it with a lot of stakeholders and having a graphical representation is a huge help in doing so. This is why there are a lot of methodologies out there to capture business logic visually, like Event Stormingdomain modeling and of course process modeling with BPMN.

BPMN is an ISO standard and its beauty is that it defines a business readable graphical visualization that is also directly executable on a workflow engine. A BPMN model therefore is also an XML file a workflow engine can understand.

Compared to other languages, BPMN is a good choice as it is really widespread and very mature. I will not dive into details of the BPMN elementsbut I can report that it was sufficient for all real-life use cases we saw in the last years — which are a lot.

It is about living documentation — not low code!

The benefit of directly executable models is what Cyrille Martraire named living documentation. The model is not an input of the requirement phase that will be outdated once the first line of code is written. No, the model will be executed and is the code. It is always in-sync with the implementationduring the whole life-cycle.

Unfortunately this is often connected with zero or low code approaches which try to get rid of the developer. In our experience these approaches do not work well, at least not in non-trivial use cases. I see BPMN models simply as a different way of writing code which should still be done by a developer. Of course he/she communicates with business stakeholders to do the right thing. And the true benefit of using BPMN and a workflow engine is to facilitate the collaboration between the different roles!

BizDevOps

Having an executable, visual and understandable model has benefits for business stakeholders, developers and operators. It also improves the communication and collaboration between them big time.

Let’s dive into that:

The business can understand visual workflows and discuss the underlying business process and related requirements.

Graphical report for one scenario run as automated unit test (here: Camunda Test Coverage). The payment workflow is taken from the flowing retail example. Use cases for workflows can be found in any industry.

Developers get a workflow engine which is a persistent state machine with a lot of additional features. On top of that they can benefit from the visual model as they gain more context into what they are actually working on. For example, some tools can create graphical reports for test scenarios.

Exemplary operations tool from a workflow engine (here: Camunda Cockpit)

Another huge gain lies within operations as a workflow engine provides a lot of context to understand and resolve problems or failures. The possibilities to directly intervene in real-time (e.g. repair failed workflow instances or correct data) help keep everything up and running.

Audit data can be leveraged to optimize workflows (here: Camunda Optimize)

And as workflow engines write a lot of audit data, one can leverage this historical data to find bottlenecks and possibilities for improvement for your workflows. This might be done by any stakeholder as everybody can understand the BPMN workflow models.

Summary

In this short post I wanted to highlight the value of graphical but directly executable models in BPMN for business stakeholders, developers and operators (BizDevOps). This is not about getting rid of IT by following a low code approach but rather provide benefits to each of the roles and facilitate collaboration between them.

PS: Screenshots are taken from Camunda, an open source platform for workflow automation. As co-founder of Camunda I simply know this tool the best.

原文地址:https://www.cnblogs.com/rongfengliang/p/10351173.html

时间: 2024-10-11 16:44:23

BizDevOps?—?the true value proposition of workflow engines的相关文章

How to implement long running flows, sagas, business processes or similar

转自:https://blog.bernd-ruecker.com/how-to-implement-long-running-flows-sagas-business-processes-or-similar-3c870a1b95a8 Long running flows can span from a few milliseconds up to several months or years (see What are long running processes? for details

Architecture options to run a workflow engine

This week a customer called and asked (translated into my own words and shortened): “We do composite services, orchestrating two or three CRUD-Services to do something more useful. Our architects want to use your workflow engine for this because the

Rule Or WorkFlow

The main value of a Workflow engine is that it makes it possible to customize the flows through some workflow definition DSL. If you don't need to allow users to define their own arbitrary workflows, they you are better off just building your own. Al

转:WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(开发持久化工作流)

转:http://www.cnblogs.com/carysun/archive/2009/01/11/receiveactivity.html 如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生.工作流(Workflow)是对工作流程及其各操作步骤之间业务规则 的抽象.概括.描述.工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档.信息或者任务.有见及 此,微软在.NET 3.0基础上发布了WF,WCF,以及WCS(身份

conductor 事件处理程序

Introduction conductor中的事件提供工作流之间的松散耦合,并支持从外部系统生成和消耗事件. 包括: 1. 能够在外部系统像SQS或Conductor内部生成一个事件(消息). 2. 当发生与提供的条件匹配的特定事件时启动工作流. conductor提供了SUB_WORKFLOW任务,可用于将工作流嵌入到父工作流程中. 事件支持提供类似的功能,而无需显式添加依赖关系,并提供了一个无休止的风格集成. Event Task 事件任务提供将事件(消息)发布到指挥或外部事件系统(如SQ

封装cookie.js、EventUtil.js、

最近学习了javascript,封装好的东西看起来舒服,以备需要的时候拉出来,jquery对javascript做了很好的封装!以后会多用jquery多些 var CookieUtil = { get: function (name){ var cookieName = encodeURIComponent(name) + "=", cookieStart = document.cookie.indexOf(cookieName), cookieValue = null, cookie

Oozie_示例

Oozie 官方示例 解压oozie-examples.tar.gz 将examples/上传到HDFS家目录 $ bin/hdfs dfs -put /opt/cdh-5.6.3/oozie-4.0.0-cdh5.3.6/examples examples 试运行自带的wordcount示例examples/apps/map-reduce job-with-config-class.properties job.properties lib workflow-with-config-class

XOML方式创建和启动工作流 <第十篇>

一.XOML使用工作流的好处 通过Xoml方式使用工作流的好处在于,它能够不重新启动程序的情况下,仅仅通过配置xoml就能够实现改变工作流,非常灵活. 创建一个WinForm程序如下: 代码如下: namespace WinForm { public partial class Form1 : Form { //定义工作流运行时Runtime容器 WorkflowRuntime workflowRuntime = new WorkflowRuntime(); public Form1() { I

Benchmarking Zeebe: An Intro to How Zeebe Scales Horizontally and How We Measure It

Written by Felix Müller and Mike Winters on Jun 12 2018 in the Inside Zeebe category. In the past few weeks, we’ve mentioned Zeebe’s performance in horizontal scalability benchmarks that we run internally, but we haven’t yet explained how exactly we