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!

2 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:

3 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?