Camunda External task vs spinning up a zeebe worker in python

Hi , I started using camunda 8 self managed and I am looking at the best way to deal with service tasks. My application is in python and I can have zeebe worker to poll and run the task. But I would like to understand why would I choose to have a external task over a zeebe worker ? What are the different ways to achieve the execution of service tasks.

Hi @Pratyusha28, welcome to the forums! In Camunda Self-Managed, those are interchangeable terms. A job worker is the client that is connecting to Zeebe to poll for jobs (also sometimes referred to as a worker and less often as a “zeebe worker”). The jobs that job workers are polling for are service task jobs.

Does that help, or did I misunderstand your question?

Hi Nathan, thanks for answering the question. I was referring to External Task from camunda-external-task-client-python3 vs worker from pyzeebe. Looks like they are the same but different libraries.

Basically i am looking for a solution where I do not want to long poll for service tasks but want to make a grpc/rest call to execute business logic. Is this possible ?

Hi @Pratyusha28 - the camunda-external-task-client-python3 package is a Camunda 7 package, not compatible with C8; pyzeebe is the opposite!

It is only supported in the Java client currently (pyzeebe is a community-maintained project, and is looking for a new active maintainer), but we do support job streaming. The Zeebe gRPC gateway also supports a long-running job streaming request. Or you can manually query for queued jobs via the gRPC gateway.

The Java client is making these gRPC calls, so you can look at the source if you’re interested in implementing your own version.

Hope that helps!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.