indeedeng / iwf

iWF is a WorkflowAsCode microservice orchestration platform offering an orchestration coding framework and service for building resilient, fault-tolerant, scalable long-running processes
MIT License
528 stars 55 forks source link

dotnet/c# sdk #172

Open jeffdoolittle opened 1 year ago

jeffdoolittle commented 1 year ago

Has there been any discussion of or interest in the creation of a dotnet/c# sdk to be included along side the go and java versions that currently exist?

longquanzheng commented 1 year ago

Hi @jeffdoolittle thanks for the interest.

There is no discussion or plan about C# SDK yet. There was a discussion about Typescript so far. I think this is because this project is quite new still. I believe we will have more people asking.

We don't have any plan to build other SDKs at this moment, because neither my team or I have enough knowledge to build it.

I want to encourage the community member like you to create one. I will provide all the support you need.

A SDK of iWF is very lightweight. It only need to invoke the two WorkflowState APIs from hosting a REST/HTTP service, based on the worker API schema. There is no much tricky things inside the SDK that you have to do. For client APIs to call iWF server(the rest of the API defined in the Open API schema), just need to build a wrapper on top of the generated code from Swagger (and it can be optional but it will just make it easier to use).

As a data point, it only took me a week to build GoSDK, including all the tests, by just opening the IntelliJ IDE and also Goland IDE to translate the Java code into Golang.

Based on my limited understanding, there are quite some similarity between C# and Java so the translating Java SDK to C# will be even easier than I doing it for Golang, I guess.

The whole community including myself will really appreciate it.

longquanzheng commented 1 year ago

https://github.com/indeedeng/iwf/issues/181#issuecomment-1474048387 for how to add a SDK

cndpost commented 1 year ago

If some organization pays, I can add such a SDK for it

StanislavPrusac commented 1 year ago

+1 for the C# dotnet SDK!

longquanzheng commented 1 year ago

+1 for the C# dotnet SDK!

Thanks for interesting in iWF!

Sorry again we don't have any plan to do it as Indeed doesn't have any team using c# :( and myself doesn't have any experience with the language.

But I wanted to offer collaboration if any of you wanted to build this together (I love the opportunity for me to learn dotnet).

It's really, really easy to build an iWF SDK. We recently done Python -- just within 15 PRs to have a production ready SDK: https://github.com/indeedeng/iwf-python-sdk/pulls?q=is%3Apr+is%3Aclosed

There are not too much code, and the protocol is straightforward. (I can do it within a week if I am familiar with a language)

If you are still interested, let's chat over qlong.seattle@gmail.com