Skip to main content

Since our last change log in November 2022, we published the following content:

  • How to set up Grafana with Temporal Cloud observability to view metrics. Temporal Cloud and SDKs emit metrics that can be used to monitor performance and troubleshoot errors. Temporal Cloud emits metrics through a Prometheus HTTP API endpoint, which can be directly used as a Prometheus data source in Grafana or to query and export Cloud metrics to any observability platform.

  • A reference of Temporal Platform failure types. Each type of Failure has a different type in the SDKs and different information in the protobuf messages (which are used to communicate with the Temporal Cluster and appear in Event History).

  • A reference of Workflow Task errors. This reference lists possible Workflow Task errors, a subset of a type of Temporal Platform failure. Each of the errors corresponds with a WorkflowTaskFailedCause, which appears in Events under the workflow_task_failed_event_attributes field.

  • How the Python SDK uses a sandbox. The Temporal Python SDK enables you to run Workflow code in a sandbox environment to help prevent non-determinism errors in your application. The Temporal Workflow Sandbox for Python is not completely isolated, and some libraries can internally mutate state, which can result in breaking determinism.

Legacy docs for SDKs

To support all the SDKs, in 2022 we started building the Dev guide. This guide now provides a single set of docs across Go, Java, PHP, Python, and TypeScript with more languages potentially on the way. This guide is the focus of new information moving forward.

We published the legacy language-specific docs for Go, Java, PHP, and TypeScript to legacy-documentation-sdks.temporal.io.

The documentation at legacy-documentation-sdks.temporal.io is read-only but might still contain some information that is not yet represented in the Dev guide.

We are still encouraging users to use both sets of documentation at this time.

In November, we published the following content:

  • How to test your Workflows and Activities section of the Developer's guide. This section was expanded significantly to cover many aspects of testing your application code, such as testing frameworks, replays, skipping time, Heartbeats, and cancellation. The only caveat is that most of the available samples are in TypeScript. However, more are on the way!

  • Setting up Prometheus and Grafana to view metrics. The Temporal Cluster and SDKs emit metrics that can be used to monitor performance and troubleshoot issues. After you enable your monitoring tool, you can relay these metrics to any monitoring and observability platform.

  • Troubleshooting the DeadlineExceeded error. All client-side requests made to the Temporal Cluster are gRPC requests. Sometimes, when these requests can't be completed, you'll see this particular error message: "Context: deadline exceeded."

  • Why you shouldn't use Run Ids in Workflow logic. The current Run Id is mutable and can change during a Workflow Retry. You should not rely on storing the current Run Id, or using it for any logical choices, because a Workflow Retry changes the Run Id and can lead to non-determinism issues.

We also added the following functionality to the documentation site:

  • Cross-platform search. When you use the docs.temporal.io site search feature or the learn.temporal.io site search feature, the results include both sites. This means you can search for tutorials on the docs site or core concepts from the learn site.

  • Link previews. On hover, and when available, local site links provide a preview of the destination content. For example, hover over this link: SignalsLink preview icon

    .

  • Build commands for contributors. We changed a few of the steps in building the full docs site.

    • snipsync merges source code snippets into Markdown files.
    • The Assembly Workflow takes individual information nodes and builds them into the longer, user-facing narratives.
    • dPrint ensures consistent formatting across the site files.
    • The Docusaurus build command generates the bundle of Javascript, CSS, and HTML that is served on the web.

    You can run each of these individually:

    • yarn snipsync
    • yarn assemble
    • yarn format
    • yarn build

    Or you can run them all in the appropriate order using yarn gen or yarn gen-cloud. Yes, our Assembly Workflow showcases an example of running Workflows through Temporal Cloud using the TypeScript SDK!

During the past month, the following content has been added or improved:

During the past month, the following content has been added or improved:

  • Timer section was added to the Developer's guide. The section shows you how to sleep within a Workflow.

  • Visibility data migration KB article was added that provides instructions on how to migrate from Elasticsearch 6 to Elasticsearch 7+. Temporal Server support for Elasticsearch 6 is removed in v1.18; follow this guide to migrate your data.

  • How to connect to a Cluster in the Developer's guide has been updated and shows how to connect to Temporal Cloud. It shows how to use default connection settings for local development and how to quickly switch to using a Cloud Namespace.

  • Cloud metrics information was added to the Temporal Cloud docs.

  • An early iteration of the Testing section was added to the Developer's guide.

  • General coverage of code examples across the Foundations section of the Developer's guide has expanded specifically for TypeScript and PHP.

  • We added a Getting started with Temporal Cloud guide!

  • We also added guides for managing certificates and managing Namespaces in Temporal Cloud.

  • The Temporal blog moved from docs.temporal.io to temporal.io/blog.

  • A new KB articles section introduces a “general knowledge base article” information archetype to the Temporal Platform documentation. This information archetype aims to answer questions such as “what is an aggregation of things of this theme?”, “what are similarities and differences between things?”, “how to do something that bridges Temporal and other tech stacks”, “how to do something that is less common”, and so on.

THANK YOU!

A HUGE thank you to everyone who participated in our user testing sessions and responded to our user survey.

Your feedback is invaluable to us as we work to improve the information that is available to Temporal users.

Reminder

The Developer's guide is rapidly increasing its coverage of SDK how-to information, but if you can't find what you are looking for there, it might be in the older docs for SDKs.

  • We removed /docs from the URLs of documentation pages. Redirects are in place, but we encourage you to update your references to our pages when possible.

  • /cloud now exists with early versions of Temporal Cloud documentation.

  • The sidebar on the left now represents the main navigation for Temporal documentation.

  • The Temporal Developer's guide is new and represents the next generation of Developer's guide documentation. Let us know what you think!

  • Older, “legacy” SDK pages are still available, but our focus moving forward is on the Developer's guide.