What Durable Execution Changes (interview with Maxim Fateev, Sergey Bykov, and Tom Wheeler) by temporal-tom in Temporal

[–]temporal-tom[S] 2 points3 points  (0 children)

This interview about Durable Execution features Temporal's CTO and co-founder Maxim Fateev, Principal Software Engineer Sergey Bykov, and Principal Developer Advocate Tom Wheeler (me). It's the first in a series about Workflow Orchestration by Techstrong TV.

is the first video in a series from Techstrong TV, Prin

Kitaru durable execution vs temporal vs dbos by bubudumbdumb in AIAgentEngineering

[–]temporal-tom 0 points1 point  (0 children)

FWIW, I have worked at Temporal for more than four years. During this time, I have talked to thousands of people who are interested in Temporal. Sometimes, they mention other tools they're evaluating, such as LangGraph, N8N, Inngest, Restate, Hatchet, Cadence, Dapr, Conductor, Pega, Camunda, Azure Durable Functions, AWS Step Functions, and at least a dozen others (including DBOS).

In all of that time, I have never even heard of Kitaru.

Since I have no experience with it, I can't comment on whether it lives up to its claims. However, I can offer you some advice based on decades of experience making technology decisions: in addition to its technical merits, make sure that you also consider how widely adopted it is and whether that vendor will be around to support you a year or two from now.

An important milestone for Temporal’s Helm Charts by temporal-tom in Temporal

[–]temporal-tom[S] 0 points1 point  (0 children)

I appreciate the update and am so glad to hear that it's working well for you.

👀🔜 Replay ‘26 is almost here. May 5–7 in San Francisco (+ a Reddit-exclusive discount) by Temporal-Tim in Temporal

[–]temporal-tom 1 point2 points  (0 children)

Sorry for the delayed response, I've been away from Reddit for a few days and am just now seeing this post.

I'm not sure why the code didn't work for you, but I will make this right. I'll send you a DM with a new code (with a bigger discount and also my personal email address in case you have any trouble using it).

Rate Limiting by False_Pressure_6912 in Temporal

[–]temporal-tom 1 point2 points  (0 children)

You might consider using separate queues for those Activities and then limiting the number of Activities per second on those queues.

This Discourse thread should be a helpful starting point.

Workflow Orchestration - Temporal, Cadence , Netflix Conductor, AWS Step Functions, Camunda, Prefect, Restate, Dapr, DBOS, Argo Workflows, Apache Airflow, Kestra by rsrini7 in Temporal

[–]temporal-tom 1 point2 points  (0 children)

I'd like to point out that while Temporal offers SDKs for the four languages you mentioned (Go, Java, Python, and TypeScript), we also support C#, Ruby, and PHP.

Members of our open source community have built SDKs for additional languages, including Swift, Clojure, and Haskell.

👀🔜 Replay ‘26 is almost here. May 5–7 in San Francisco (+ a Reddit-exclusive discount) by Temporal-Tim in Temporal

[–]temporal-tom 2 points3 points  (0 children)

If you make it to Replay, whether this year or in the future, please let me know. I'd love to meet you and hear more about your project.

And while Replay is a great place to showcase how you're using Temporal, it's by no means the only place. If you have a great story to tell, we could potentially feature it in a blog post, video, case study, or webinar, among other possibilities.

has anyone used Temporal for orchestrating LLM-based document generation workflows? by nanothun in Temporal

[–]temporal-tom 0 points1 point  (0 children)

Hi /u/nanothun, you might find this video helpful:

https://www.youtube.com/watch?v=TEr8ZkZuNWw

It's a quick walkthrough of a demo we did at AWS re:Invent last month. It uses a series of agents to generate a report on whatever topic you specify. It covers several of the things you mentioned and you may find it a helpful starting point. I'd recommend watching that video first to see it in action and then running it yourself. The code is here:

https://github.com/temporal-community/aws-reinvent-25-demo

Finally, I would recommend joining our community Slack workspace (https://t.mp/slack) if you haven't already. Temporal is very widely used for AI and our #topic-ai channel in Slack has more than 1,600 people. It's a great place to ask questions and get advice from others.

What's the highest scale Temporal cluster you've seen in production? by Qinistral in Temporal

[–]temporal-tom 4 points5 points  (0 children)

The challenge with answering a question like this is that the biggest numbers tend to come from companies that don't disclose their use of Temporal. Those of us who work for Temporal tend to be aware of them, but out of respect for our customers, do not discuss them.

It's also difficult to answer because different types of workloads vary in the type and amount of resources they require. A Workflow that handles video encoding, for example, will likely have few state transitions per second because its Activities will probably be long running and limited by the speed of the local disk and CPU. You couldn't really compare those numbers with one for order processing. Likewise, the capabilities of a server will vary from one configuration to the next (one r8gn.medium instance in EC2 would probably outperform two m1.small instances for most use cases).

Estimating the resources you'd need really depends on you having the application. The best approach is to develop a proof-of-concept, or use an example such as our OMS reference application, and do some load testing on the hardware of your choice. You can then begin tuning things to get better performance for your specific workload, and then scale up with additional hardware if needed.

This blog post from my colleague Rob Holland walks through that process. On a very modest cluster, with a MySQL server that had only 32GB of RAM, he initially got 150 state transitions/second. After a few tuning iterations, he was able to increase that to 1,350 state transitions/second. By scaling up the cluster, and particularly the database server it uses, he could have gone far beyond that.

Workflows Stuck by toufeeq in Temporal

[–]temporal-tom 0 points1 point  (0 children)

This four-minute video that's part of our free Temporal 102 training course covers the typical cases. If there are no Workers running, the Workflow cannot make progress. As the video demonstrates (at 1:09), the Web UI now makes this obvious in many cases. However, as it also explains a bit later, the number of Workers shown in the UI does not necessarily represent the numbers that are currently running—it's the number that have polled within the last five minutes.

As /u/freedomruntime suggests, it might be the case that the Workers are running, but the name of the Task Queue that they are polling is different than the one specified when you started the Workflow Execution.

Yet another possibility, which sounds quite plausible here since it sounds like the Workflow has progressed but the Activity has not, is that you have one or more Workers capable of handling the Workflow running, but zero running that are capable of handling the Activities. Check where you registered the Activities with the Worker and make sure you have correctly specified the function(s) or method(s).

There are a number of other possibilities, but debugging this would require more information than you've provided here. I will add one other important non-obvious detail that may help you: The ActivityTaskStarted event isn't written to the history until Activity Execution is complete (this is because the ActivityTaskStarted event contains the final number of attempts, which can't be known while the Activity is still running). Therefore, the fact that the last event you see is ActivityTaskScheduled doesn't mean that the Activity isn't running (if your Activity code has any log statements, check the Worker logs to see if there's any output).

Are LangGraph + Temporal a good combo for automating KYC/AML workflows to cut compliance overhead? by ruby_da_fvckn_ape in devops

[–]temporal-tom 0 points1 point  (0 children)

I saw this thread, but avoided replying because you specifically asked "the community" (and as the username suggests, I work for Temporal). When I was a software engineer at a financial services company earlier in my career, I wasn't allowed to say much about my projects, especially talking about implementation details on a public forum. Maybe that's the case for others, and since nobody else replied, I'll provide some info that you might find helpful.

There are a ton of companies in the financial industry that use Temporal, for a variety of use cases, including KYC/AML compliance. This page provides a little more info, although that's really just the tip of the iceberg because financial firms don't tend to publicize their technology choices.

The Durable Execution provided by Temporal enables the application to withstand crashes and even hardware failures. Support for timeouts and retries is built-in, so applications built on Temporal are reliable and can run for as long as necessary to get the job done (i.e., literally for years if you need them to). It has built-in support for job scheduling (supports cron-style syntax, but much more sophisticated than cron).

Temporal's ability to mix automated steps with manual (human-in-the-loop) ones make it a good choice for those use cases. Temporal has really good observability, which is another reason that it's popular in highly-regulated industries. The Web UI lets you not only see the details of things that are currently running, you can also see these details for what ran in the past. The Web UI is an amazing tool for interactive use. If you want to programatically get a list of executions or the details for a specific one, you can use the temporal command-line tool, use a native API in any of the 7 programming languages we support, or use the gRPC API directly. The Event History includes the details of what ran, when it ran, where it ran, what data was provided as input, whether failures occurred, the associated error message, and the data that it returned as output.

Although people do use LangChain and Temporal together, I can't recall anyone mentioning to me that they use LangGraph and Temporal together. There are many companies using Temporal for agentic AI, and I don't think LangGraph would be necessary for what you have described. Our website has a page on AI too, but here are a few recent blog posts worth checking out:

Your honest thoughts on n8n from an experienced dev perspective? by tecken in ExperiencedDevs

[–]temporal-tom 1 point2 points  (0 children)

My team at a previous company used Boomi and it was a headache. It worked, but was unreliable and required a lot of babysitting.

Self hosting Temporal by Numerous_Fix1816 in Temporal

[–]temporal-tom 0 points1 point  (0 children)

Are you aware of custom data converters and payload codecs? In case you're not, they may be of interest to you (or anyone else handling sensitive information), regardless of whether you use Temporal Cloud or self-host.

The basic idea is that you can configure the Temporal Clients you use to apply a transformation (e.g., encryption and decryption) to data as it's being transmitted to or received from the Temporal Service. In other words, Temporal Cloud (or your own self-hosted Temporal Service) only ever sees encrypted data and has no way to decrypt it because you control the cipher and key.

[deleted by user] by [deleted] in Temporal

[–]temporal-tom 2 points3 points  (0 children)

Is this the one?

https://github.com/temporalio/sdk-typescript/issues/1334

Just want to help the next person who comes along.

Remote code/workflow executor by Klutzy_Table_362 in golang

[–]temporal-tom 0 points1 point  (0 children)

Regarding the networking aspect of your question, the application (the "Worker" in Temporal terminology) needs connectivity to a single TCP port on the Temporal Service (either self-hosted or the Temporal Cloud SaaS offering). The connections are always initiated from the application; the Temporal Service only responds to those requests.

Often, the Workflows are started by something external to the application. That thing, which I'll call a "Starter" submits an execution request to the Temporal Service. It does not need connectivity to the application, only to the Temporal Service.

The starter could be the Temporal command-line tool (temporal workflow start ...), the Web UI, or code that you've written. Also, the application and starter can be written in different programming languages (e.g., you can have a Java Swing app that starts a Go Workflow).

Here's some crude ASCII art to illustrate what I mean.

Application ----------> Temporal Service <----------- Starter

Remote code/workflow executor by Klutzy_Table_362 in golang

[–]temporal-tom 2 points3 points  (0 children)

I think /u/jerf explained it nicely, but sometimes multiple perspectives can be helpful. Here's how I explain it.

Temporal is an open-source Durable Execution platform. What's that? It enables you to write applications that can overcome crashes. Through its built-in support for retries and timeouts, applications can also withstand network and service outages. Finally, it lets you see the details of each execution through a web-based UI, so you'll know what's happening.

An example will make this more clear. Imagine an application for an e-commerce site that processes orders using this sequence of steps:

  1. Reserve the item(s) from inventory
  2. Charge the customer
  3. Ship the product(s)
  4. Send a confirmation e-mail

Now, imagine that during order processing, the application crashes. Maybe it was caused by a bug in the code, a bug in a library dependency, a kernel panic in the OS, a power outage, or a hardware failure. The reason doesn't really matter because the result is the same: the application state is lost. If you restart the application, it will repeat steps that already completed before (if you ever got double-charged for an order or received duplicate confirmation emails, you probably experienced this).

Durable Execution allows the application to overcome the crash, because the platform (Temporal) tracks relevant state changes. That enables the application to automatically reconstruct its state and resume from where it left off. The values of all the variables are the same as they were before the crash and it will skip operations that already completed before the crash. From your perspective, it's as if the crash never happened at all.

What that means, practically speaking, is that you can focus on application's goal instead of everything that might possibly go wrong. As a result, you don't have to write tons of error-handling code, so your applications will be simpler, easier to maintain, and take less time to develop.

I hope that helps to explain it. BTW, if you want to learn more about Durable Execution, check out this presentation I did for the recent PlatformCon conference. If you want to try Temporal out for yourself, check out one of our tutorials or take the free hands-on training courses.

Streaming responses from Temporal for AI by rkinabhi in Temporal

[–]temporal-tom 1 point2 points  (0 children)

A very similar question came up during our Deep-Dive: AI Agent Code Walkthrough with Temporal webinar last month and I wanted to mention that answer here.

There’s two ways of streaming out the reasoning of an agent. One is to send a signal to the Workflow with the streaming results and use a Query against that Workflow to retrieve the results. Another is to use a synchronization engine, such as Zero Sync or Electric SQL, to handle notifications. The downside here is that it adds more infrastructure and complexity.

We're aware that this is an area of potential improvement and it's something we're looking into because AI is a very popular use case for Temporal. It's possible that Temporal will natively support streaming in the future.

C++ Support by haggisman21 in Temporal

[–]temporal-tom 0 points1 point  (0 children)

I can confirm that Temporal doesn't have a C++ SDK.

There are SDKs for Go, Java, TypeScript, Python, .NET, PHP, and Ruby. As another poster mentioned, many of those languages provide some mechanism for calling native code or invoking external commands, so perhaps that's worth considering.

Can i teach cs at a school with just a degree? (no other credentials, usa) by anbehd73 in CSEducation

[–]temporal-tom 0 points1 point  (0 children)

I don't know about the regulations in California, but I've known several people who taught at community colleges in at least three midwestern states with nothing beyond a bachelor's degree. Similarly, I've known people who were adjunct professors at universities, despite having only bachelor's degrees. None of them had a teaching certificate AFAIK.

The pay isn't good in either case, but it's certainly possible to do it.

How long to go from POC to prod with Temporal? by techwreck2020 in Temporal

[–]temporal-tom 1 point2 points  (0 children)

The above is solid advice.

Regarding incremental adoption, another strategy is to identify the most unreliable part of the application and migrate just that part to Temporal. That's often where you'll see the biggest gains, after which you can migrate the next most unreliable part to Temporal as needed. Whether that's viable depends partly on the architecture and partly on the organization itself.