Hacker News new | ask | show | jobs
by MuffinFlavored 1252 days ago
you have to code your entire architecture around this premise though, no?

aka start from scratch and write things a certain way

2 comments

No, the sample app is 100% Temporal backend, but you can incrementally adopt—writing durable functions for specific processes. Usually companies start out with things that are either long running or for which reliability is particularly important, like financial transactions. Then they learn that it can be more generally useful, and expand use cases gradually.
Sounds like the whole point is you don't have to take anything special into account. Edit: Except determinism?
The point is that you can write code instead of JSON/YAML like traditional microservice orchestration like AWS step functions. And it’s not a limited dsl—you have the full lang at your disposal, with the one requirement that deterministic code (workflows / the durable code) is in separate functions from non deterministic code (like making a network request, called “Activities”).
https://github.com/temporalio/hello-world-project-template-j...

You have to write your code using Temporal SDK.

At a quick glance:

main() calls WorkflowServiceStubs/WorkflowClient

I also see something called an "Activity"

Also see something called a Worker.

Not trying to argue. Genuinely curious if you think this is within the realm of "not take anything special into account" (be forced to use a specific SDK and lay your logic out in the exact way it supports) or if you didn't know this was referring to Temporal?

100% like it or not vendor lock-in is there with all workflow solutions. We need standardisation with workflow solutions as mentioned here in detail https://twitter.com/gwenshap/status/1505950830767206400?s=46...
I thought this comment chain was about durable execution in general. Temporal seems to be that plus some RPC stuff that is a lot more than "nothing special."
All the durable execution systems have to run your code in certain way that persists steps like RPCs (and need to provide a mechanism for you to tell the system which functions have RPCs) so they can recover in case of process failures. They all also happen to provide common orchestrator features like retries and timeouts because devs find it useful.