[Temporal 101 with Go] Where's the finale workflow executed?

Exercise 4: Finale Workflow is an interesting one as it shows how the workflow code and the activity code could be written in 2 different languages. However, I’m confused about where the workflow code in the example is executed.

In the previous example “Exercise 3: Farewell Workflow”, I know both the workflow and the activity are executed by worker/main.go because it registers both the workflow and activity

In “Exercise 4: Finale Workflow” though, my impression is the worker is written in Java and it has registered the Java-written activity. My question is, in this case, who registers and executes the Go-written workflow? I don’t think it’s the start/main.go

You are very observant! In fact, your message led me to find a mistake in this exercise.

When I originally wrote this Java Activity, I also wrote the Workflow in Java so that I could run them both in my IDE and iterate more quickly on changes to the code. Unfortunately, when I finished, I forgot to remove the Java Workflow implementation from the resulting JAR file, so the exercise instructions were actually using Go code (start/main.go) to execute a Workflow and Activity that were both written in Java.

I have just updated the exercise code and instructions to correct this. You can run git pull to get the updated version, which includes an extra step of launching the Go Workflow Worker.

Thank you for asking about this and I apologize for the confusion.