About Temporal SDKs
Temporal SDKs (software development kits) are an open source collection of tools, libraries, and APIs that enable Temporal Application development.
They offer a Temporal Client to interact with the Temporal Service, APIs to develop your Temporal Application, and APIs to run horizontally scalable Workers.
SDKs are more than just a development tool, however. The SDK APIs enable developers to write code in a particular pattern that mirrors real world processes. The SDK's internal implementation, working in collaboration with the Temporal Service, steps through that code, guaranteeing execution progression during application runtime.
Temporal Applications
A Temporal Application is the code you write, comprised of Workflow Definitions, Activity Definitions, code used to configure Temporal Clients, and code used to configure and start Workers. Developers create Temporal Applications using an official Temporal SDK.
Consider that the Workflow Definition code can be executed repeatedly. The Temporal Platform can concurrently support millions to billions of Workflow Executions, each of which representing an invoked Workflow Definition.
Additionally, a Temporal Workflow Execution is both resumable and recoverable, and it can react to external events.
- Resumable: The ability of a process to resume execution after suspending on an awaitable.
- Recoverable: The ability of a process to resume execution after suspending due to a failure.
- Reactive: The ability of a process to respond to external events.
Hence, a Temporal Application can run for seconds or years in the presence of arbitrary load and failures.
Official SDKs
What are the officially supported SDKs?
Each Temporal SDK targets a specific programming language.
- Go SDK feature guides
- Java SDK feature guides
- PHP SDK feature guides
- Python SDK feature guides
- TypeScript SDK feature guides
- .NET SDK feature guides
- Ruby SDK README
Despite supporting multiple languages, and supporting many features, Temporal SDKs aim to make developers feel at home in their language.
Third-party SDKs
The following third-party SDKs exist but are not supported in Temporal's documentation:
Why use a Temporal SDK?
Temporal SDKs empowers developers to concentrate on creating dependable and scalable business logic, alleviating the need to build home grown supervisor systems to ensure reliability and fault-tolerance. This is possible because the Temporal SDK provides a unified library that abstracts the intricacies of how Temporal handles distributed systems.