
Introduction to the Temporal Java SDK
- Introduction
- Project setup
- Durable execution
Welcome to the Temporal Java SDK Background Check tutorial. The Temporal Java SDK Background Check tutorial documents the concepts, features, and tools that you'll use to create, test, and execute Temporal applications in Java.
The Temporal Java SDK released on March 28, 2020.
Supported runtimes
Developing applications with the Temporal Java SDK requires Java 1.8 or later.
Build configuration
Find the latest release of the Temporal Java SDK at Maven Central.
Add temporal-sdk as a dependency to your pom.xml:
<dependency>
<groupId>io.temporal</groupId>
<artifactId>temporal-sdk</artifactId>
<version>N.N.N</version>
</dependency>
Or to build.gradle:
compile group: 'io.temporal', name: 'temporal-sdk', version: 'N.N.N'
Expected skills and experiences
The Temporal Platform enables developers to build a wide range of applications that serve a variety of use cases. The following skills will help you succeed with the Java SDK at production scale.
Core fundamentals:
- Java syntax and structure
- Data types
- Operators
- Control statements: loops, conditionals
- Basic Input/Output
- Understanding of Java Virtual Machine (JVM)
Object-oriented programming:
- Classes and objects
- Interfaces
- Inheritance
- Encapsulation
- Polymorphism
Java language features:
- Annotations
- Exception handling
- Collections Framework
- Java Stream API
- Lambdas and functional interfaces
- Threads and concurrency
Tools: beginner to moderate experience using a Java IDE, such as IntelliJ IDEA or Eclipse.
Testing: experience with a testing library and framework such as JUnit or Mockito.
Code base version control: experience using a version control system, such as Git.
Dependency management: experience using a dependency management system such as Maven or Gradle.
Listing and sorting: experience with SQL-like syntax and CRUD operational concepts to make use of Temporal's Visibility tools.
Security: to onboard with Temporal Cloud or set up a self-hosted Cluster, you should have some understanding and experience with TLS, security certificates, and private keys.
Privacy: for applications that process any amount of user data, you should have some understanding and experience with PII and sensitive information encryption.
For complex and large-scale use cases, at least some experience with the following can be helpful:
- Deeper JVM understanding: memory management, garbage collection, JIT compilation.
- Design patterns: singleton, factory, strategy, observer.
- Distributed system architectures: event-driven architectures, stateful vs stateless processes, scalability, fault tolerance.
Code samples and resources
Where to find code samples and other resources for the Java SDK:
- Continue reading this tutorial.
- Temporal 101 course in Java - t.mp/java-101
- Temporal 102 course in Java - t.mp/java-102
- Documentation samples repository - temporalio/documentation-samples-java
- Java SDK samples repository - temporalio/samples-java
- Java SDK workshops - YouTube playlist
- Java SDK tutorials - learn.temporal.io/getting_started/java/
Where to get help with the Java SDK:
- The
#java-sdkchannel in Slack - Community Forum
Updates
How to follow updates to the Java SDK:
- The Temporal newsletter includes major SDK updates.
- GitHub Releases has all SDK releases. The release feed can be added to a feed reader or converted to emails:
https://github.com/temporalio/sdk-java/releases.atom.
Contribution
The Temporal Java SDK is Apache 2.0 licensed, and contributions are welcome. Review the contribution guidelines.
Get notified when we launch new educational content
New courses, tutorials, and learning resources - straight to your inbox.