Temporal based BPM with high through output

Hello, I’m currently trying to figure out if Temporal will be suitable for marketing campaign automation.

There will be a campaign/workflow which every user from defined batch will pass. It will contain a chain of action nodes, condition nodes, wait nodes and etc.

The example of simple campaign/workflow:
[send sms to user] → [wait 1 hour] → [send email to user]

The main difficulty is that users batches will only grow over time. So let’s imagine from some point batches will contain 1 million+ users. It means that after campaign configured and started - campaign automation tool will have to process 1 million sms sends as fast as possible, then create 1 million tasks to wait (which will timeout more or less at the same time) and send 1 million emails.

I’ve read many topic here about high load and as far as I understood - Temporal is good when a lot of workflows needed, but there is no high load inside each workflow.

So the question is simple - does the Temporal fits for handling described load profile or not.
Thank you!

Yes, Temporal can scale to high task rates and a practically unlimited number of open workflows.

process 1 million sms sends as fast as possible

The cost of the cluster will be proportional to the maximum rate of task execution. If you want to process 1 million tasks in 10 seconds, you will run a much larger DB and cluster than processing them in 10 minutes.

Maxim, thank you for the response!
I got your point about Temporal scaleability. My question was more about how effective Temporal for case with such profile load. I’ve seen topics where Temporal users report about high DB query rate and your responses about frequently talking with DB architecture.
With PostgreSQL usage - will not it be a huge bottle neck considering high amount of read-write operations and fast growing tables?

How many tasks per second do you need to run?

About 1k tasks per second. Further the number will have to grow.

I think it should be possible with PostgreSQL. But if you need much higher traffic then Cassandra (or Temporal Cloud) is the only option.

@maxim thank you very much for your quick responses. Will research all available options Temporal provides!