Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.
Hi,
I had a couple of questions about communication with workers.
Does Cadence use RPC to communicate with the workers?
Is Yarpc also used during communication?
The communication is performed over Tchannel? (or maybe HTTP)?
I must use the Cadence Client SDK to define workers which perform my business logic right? (e.g. I cannot use define a service in node.js and connect it directly with cadence without having a generic http worker?)
Thanks
It is more like workers use RPC to communicate with the Cadence service :). The workers use the long poll to listen for tasks to process.
AFAIK Yarpc is more like programming framework. The wire protocol is Thrift over TChannel. I don't think the public version of the client uses Yarpc yet.
It is TChannel. We have plans to migrate to Protobuf/grpc in 2019.
For workflow implementations it is expected that you use the provided client side libraries (Go and Java are currently supported). In the future we might extend the list of supported languages. For activity implementations any language that supports TChannel (and grpc after the planned migration) is fine. Currently TChannel supports Go, Java, NodeJS and Python. Here is the Cadence service Thrift definition file.
Hi, I had a couple of questions about communication with workers.