Camunda Worker (External task) powered by Typescript

Hello community !

I would like to share a new open source project : workit

WorkIt is an extensible worker for Node.js that works with both Zeebe and Camunda BPM platforms powered by TypeScript.

  • Comprehensive API documentation is available online and in the docs subdirectory
  • We have a Get Started section

But everything is in the README.

This project is compatible with:

  • 7.6 to 7.12 versions for Camunda BPM
  • 0.16 to 0.20 versions with Zeebe

Thats fantastic! Thanks for contributing.
I’m gonna check it out in more detail tomorrow - thanks for sharing!

1 Like

@Niall @Olivier_Albertini could you suggest when one might go for this, vs I also came across

If you want to implement a more distributed architecture. Take a look at this post for more details.
You can also see this video to find out how it works.

The difference between the two JS clients is that @nikku’s one was made first and existed before we created a camunda supported one. So best to use the one form Camunda.

1 Like

Great, thanks @niall!


Workit use Typescript and this is a big plus (at least for us) during maintenance and developments. Besides, instead of depending directly from a Camunda client, this project provides an abstraction layer. This way it’s easier to change the client or to make your own.
Behind the scene, Workit use by default for Camunda BPM engine.

With Workit you can experiment and choose the Camunda platform you want without rewritting the business logic. It’s also built-in with OpenTelemetry.

If you plan to use Zeebe or something else in the futur, Workit is a good candidate. Otherwise,


Hi @Olivier_Albertini thanks for the detailed explanation. Does this provide an abstraction over the engine REST API too, or just helps to develop the worker? Maybe it will be more apparent if I try both out! :smiley:

I couldn’t find details in the documentation for on how to assign a user to a task using that library. Should I implement a REST call manually as per the documentation here

External task are designed to be specifically used for service tasks and so they have no functions for doing anything with user tasks.

1 Like

Okay thanks @Niall