New python zeebe client

Hi,

I have been working on a zeebe python client named pyzeebe for a little while now, and I thought it might be interesting for the community.

github - https://github.com/JonatanMartens/pyzeebe
documentation - https://pyzeebe.readthedocs.io/en/stable/

Any comments would be greatly appreciated!

3 Likes

This is great! Congratulations!!

A few questions:

  • Can you throw a BPMN error from the task worker?
  • Was there something specific about the existing Zeebe Python client that motivated you to build this one?

Josh

  1. You can throw a bpmn error from the task worker in the exception_handler (job.set_error_status)
  2. I felt like the existing Python client was very barebones (only the generated grpc files)

Thanks for the comment @jwulf :smile:

4 Likes

Hi @JonatanMartens,

Great to see more developers working on the python zeebe worker and client stuff.
I’m the author of the python-grpc “script” which indeed is only a automatic build of the grpc zeebe proto file. I also worked on my own “high-level” client and worker based on zeebe-grpc. It is released on Pypi here: https://pypi.org/project/zeebe/ and the code is here: https://gitlab.com/stephane.ludwig/zeebe_python.
One example using this code is the zeebe “echo” worker: https://gitlab.com/stephane.ludwig/zeebe_echo. Which is basically a Docker zeebe worker connecting to zeebe, executing “ECHO” tasks and printing job variables on the console.
My goal was to bring the python high level client and worker close to the same level of functionality than zeebe-node. But as I don’t have enough time to spent on the project, I’m interested in your implementation.

Do you use zeebe-grpc or did you reimplement the build of the gateway file ? Or did you self implement the grpc stuff ?

I will look at your code and comment further :wink:

Hey @gizmo84,

Thanks for your response!
I indeed reimplemented the build of the gateway file as I wanted to limit the number of dependencies needed.
Contribution of any kind would be absolutely welcomed, especially from someone with experience in building Zeebe clients for python!

Hi @JonatanMartens,

I like the client, is there any possibility to handle by worker function multiple request at once ?
It could be quite efficient for example when querying database or when doing actions which can be in group done in better time/resources then one by one ?

Thanks,

Jan

Hi @jcada,

Unless I didn’t understand your question, this should already be implemented (using threading).
Did you experience something different?

Hi @JonatanMartens !!
Incredible work. Thanks!

I am trying to bring Zeebe to my company, and I would like to know if there is any plan to release the client with support for the new version of Zeebe (>1.0.0). I saw that there is a pre-release branch. Any idea when it will release?

Otherwise, what are the risks of using Zeebe version 0.26? I’m afraid to run out of issues that have already been resolved in the newer versions.

Hi @JonatanMartens !!
Thanks a lot for pyzeebe,
what s the best way to exchange with you on this ? through github issues ?
i got a zeebe worker write with pyzeebe 2.4 with an unwanted behaviour so i decide to give a try to pyzeebe 3.0 , but none of my tests; (even using examples ) works , my worker do not succeed getting the job task waiting in queue. it does with the 2.4.0 version on zeebe 1.0.0

Hey @Nilson_Rossi, sorry for the late response.
As of nearly two weeks ago, pyzeebe supports Zeebe 1.0.0 (version 3.0.0).

Hey @seb835,

The best way to reach me would be:

Looking forward to seeing you there!

2 Likes