System Architecture with Dotnet SDK

All the examples I’ve found using the dotnet SDK reference the workflow (and activities) in both the workers and the client code that initiates new workflows.

I was under the impression that you could build a decoupled system where one system could start a workflow without caring where/how it would be executed eliminating other decoupling methods like SQS and direct api calls. Since I seem to need the full binary logic of the workflow to exist in every place that might call it that feels pretty coupled. Am I misunderstanding the options or is there a way to execute a workflow by name and some contract for parameters.

Thanks!

You absolutely can, even across languages if you want, but even within the language, not having the implementation on the caller side is very normal. Not only can the callers of activities and workflows use an interface with the same attributes, but every overload for those also has an option to just pass the string name w/ arbitrary object arguments instead. In fact, the type-safe invocation via lambda expressions is just sugar for the string form.

Aha, interface, that makes sense. Thanks so much!