Open inghak opened 8 months ago
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. :)
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.
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.
@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?
Sorry I'm in vacation right now. Will take a look soon.
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.