Introduction to the Temporal Java SDK
Welcome to Temporal Java SDK Background Check tutorial.
The Temporal Java SDK released on March 28, 2020. 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.
Supported runtimes
What are the supported Java runtimes?
Developing applications with the Temporal Java SDK requires Java 1.8+.
Build configuration
Where can I get a 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
What Java programming skills and experiences should a developer have to succeed with the Java SDK?
The Temporal Platform enables developers to build a wide range of applications that serve a variety of use cases.
We recommend that developers are equipped with some of the following skills to develop production-level Temporal Applications:
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
We recommend that developers have a beginner to moderate level of experience using a Java IDE, such as IntelliJ IDEA or Eclipse
Testing
We recommend that developers have some experience with a testing library and framework such as JUnit or Mockito.
Code base version control
We recommend that developers have some experience using a version control system, such as Git.
Dependency management
We recommend that developers have some experience using a dependency management system such as Maven or Gradle.
Listing and sorting
We recommend that developers have some 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, we recommend that developers have some understanding and experience with TLS, security certificates, and private keys.
Privacy
For applications that process any amount of user data we recommend that developers have some understanding and experience with PII and sensitive information encryption.
Large scale use cases
For complex and large-scale use cases, having at least some experience with a variation of the following could be helpful:
- Deeper JVM understanding of the following:
- Memory Management
- Garbage Collection
- JIT Compilation
- Design Patterns:
- Singleton, Factory, Strategy, Observer, etc.
- Distributed system architectures
- Event-driven architectures: Understanding of how events can drive processes and how they fit into Workflows.
- Stateful vs. stateless processes: Knowledge about the advantages and pitfalls of both.
- Scalability: Understanding the implications, of scaling services, on performance and reliability.
- Fault tolerance: Knowledge of supervisor systems that check progress and resume after suspensions.
Code samples and resources
Where can I find code samples and other resources to learn to use the Java SDK?
- Continue reading this guide.
- 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.com/playlist?list=PLl9kRkvFJrlSNuTvL0dl3VE5GEe1HFtjf
- Java SDK tutorials → learn.temporal.io/getting_started/java/
Where can I get help with using the Java SDK?
- #java-sdk channel 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. It also has a feed that can be added to a feed reader or converted to emails:
https://github.com/temporalio/sdk-java/releases.atom
.
Contribution
How to contribute to the Temporal Java SDK
The Temporal Java SDK is an Apache 2.0 licensed, and contributions are welcome. Please review our contribution guidelines.