Workflows at the edge

Hi all!

My team is looking for a workflow engine. I’ve looked at several options and I’ve become a fan fo zeebe. I have two challenges I need to address before choosing a solution:

  1. Does Camunda provide training and/or support for zeebe? We have a big R&D organization and I’ve noticed that the WF programming model intimidates a lof of our engineers so training is super important for us.

  2. We need to execute workflows on different platforms (Android, iPhone, macOS, Windows). Does anyone in this forum know of a WF engine that can execute on an edge device? Preferably something that has a similar model to zeebe so that engineers don’t need to master two different WF models.

Thanks in advance for your help!

Hey @dctc42,

thanks for trying Zeebe.

Regarding to your first Question probably @wints can help?

To answer your second question I need probably some more information about your use case or at least what do you want to achieve.

Zeebe is language agnostic, because of the gRPC usage. So this means you can generate with help of grpc several clients in different languages. We already have supported clients written in GO and Java, but there already exist some other community clients written in nodejs, c# and rust. Maybe this helps to answer your question.

Greets,
Chris

Thanks for your reply @Zelldon. I was envisioning a WFE running on the device itself but you may have a point. It may not be necessary.

I’ll try to go through a use-case without disclosing IP. Imagine you wanted to install a set of applications and/or distribute media files to hundreds of thousands, perhaps millions of laptops. There are requirements around which order these resources are distributed (perhaps to manage dependencies). There are requirements to run ad-hoc logic on the devices themselves to determine eligibility for certain resource (for example, is disk encryption enabled on the device).

A concern I would have executing these workflows on the service side is the need to manage connections and input/output marshaling from several millions of devices. I’m not necessarily concerned with zeebie handling the load. It’s the infrastructure needed in between to handle all those concurrent connections and data throughput with a three nines SLA.

I come from a background where this wouldn’t be an issue but in my current company we just don’t have infrastructure (or know how) to handle this.

Yes, Camunda does BPMN training.

You can embed the Camunda engine in Java applications, but not Zeebe. So something with a runtime container like Tomcat is needed.

You could use this on edge devices: https://github.com/paed01/bpmn-engine

In conjunction with these:
https://code.janeasystems.com/nodejs-mobile/getting-started-ios

It means that you move operational complexity / load to the complexity of supporting two or three apps for the different edge devices, but at least it would be one language - TypeScript (or JS if you want to do it in hardcore mode).