Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for job streaming #661

Open
inghak opened this issue Mar 18, 2024 · 5 comments
Open

Add support for job streaming #661

inghak opened this issue Mar 18, 2024 · 5 comments
Assignees
Labels

Comments

@inghak
Copy link

inghak commented Mar 18, 2024

The Java and Go clients are supporting the newish Job Streaming feature (job push). It seems to me the C# client is yet not?

The C# client should support job streaming the same way as the GO an Java clients does, with a configurable boolean property StreamEnabled.

A very impressive performance blog of Job Streaming: https://zeebe-io.github.io/zeebe-chaos/2024/01/19/Job-Activation-Latency/
Docs describing the concept: https://docs.camunda.io/docs/components/concepts/job-workers/
Doc for this feature in Java client: https://docs.camunda.io/docs/apis-tools/java-client/job-worker/#job-streaming
Doc for this feature in GO client: https://docs.camunda.io/docs/apis-tools/go-client/job-worker/#job-streaming

This is a new absolute core feature of Camunda-Platform that should be supported in the C# client. It has potentially big impact on performance and seems to be a better and newer iteration to, in many cases, replace long polling.

@inghak
Copy link
Author

inghak commented Jun 28, 2024

From a business perspective, I believe it is a mistake for Camunda to downplay .NET integrations. The .NET ecosystem has a significant market share and a strong willingness and ability to pay. When .NET-centric businesses evaluate business process software, .NET integration is a crucial factor. It would be wise to develop integration channels equally across the main technology options. I.e. while Go is a great language, from a business standpoint, it is yet not close to .NET. :)

@ChrisKujawa
Copy link
Collaborator

Thanks @inghak for the input. I forwarded your comment internally :) 🙇🏼

While I would like to give more support in general, I do not have enough time right now to build additional features. Or at least I can't give guarantees for it. It will happen sporadically.

Side note: as I implemented parts of it also in the Java client, I might have some ideas to add this functionally to the .net client as well.

@xlegalles
Copy link
Contributor

It's also up to the community to make it move. Will try to spend some time on it. @Zelldon if you have any comments to share, don't hesitate. Also, I will of course take a look at the Java implementation.

@dimasm61
Copy link
Contributor

dimasm61 commented Jul 23, 2024

@Zelldon @xlegalles
What about this realization?
https://github.com/dimasm61/zeebe-client-csharp/compare/main..feat_add_streaming
It works, but I haven’t done the tests and checked on a high load.
The changes are minimal, but the design (with creating two ActivateJobsRequest & StreamActivatedJobsRequest instances) is not very good.
And there are many options, I’m afraid not to guess the right )
Any ideas on that?

@xlegalles
Copy link
Contributor

Sorry I'm in vacation right now. Will take a look soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants