Skip to main content

November 23 2022

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!