Skip to main content

Versioning Workflows with Java

Temporal Java SDK

Estimated time: ~⏱️ 1.5 hour, self-paced.

Cost: Free


In this course, you'll go beyond the fundamentals, learning how to safely evolve your Temporal application code in production. This course will cover multiple approaches to versioning Temporal Workflows, bookended by examples of how to monitor and test your Workflow Execution History, so you can verify that your Versioning is working correctly. You'll also see an example of a long-running Workflow, which will help you to see why Temporal requires that Workflow code is deterministic, what can happen when a Workflow contains non-deterministic code, and how you can use versioning to safely deploy changes to your code.

As with our first two "Introducing the Temporal Platform" and "Exploring Durable Execution" courses, you won't need to be an expert Java developer to successfully complete this course. That said, you will see more idiomatic language features, and more production-ready code snippets. This course also uses some third-party packages, such as the "JUnit5" package used for unit tests, to make the examples better reflect what an experienced developer would do. However, it's important to remember that the example code used in this course was designed to support learning a specific aspect of Temporal, not to serve as a ready-to-use template for implementing a production system.

The examples and code in this course will pick up where "Exploring Durable Execution" left off, and you'll see some of the same business logic -- such as the pizza delivery Workflow -- from our earlier courses. You shouldn't need to review those courses if you've already them, since this course will recap some of the same material in the context of versioning.

Go to Course