Tour of Code
There are 5 Go services total: 3 “microservices” responsible for domain data, and 2 services which interact with Temporal.
One of those services is the “starter” which clients pass data to. The “Starter” accepts all input data, starts a workflow, and immediately returns some key data, such as the workflow ID and various primary keys of the created data. This is actually a good user experience, because clients hear back from the server as soon as possible, while the backend can chug along with complex asynchronous work.
Once the workflow has started and been received by the Temporal Cluster, the message will be dispatched to our “Worker”, which has registered a workflow definition, as well as a controller for making the network requests for of our 3 activities.