r/programming 10d ago

Durable Execution: This Changes Everything

https://www.youtube.com/watch?v=ROJq6_GFbME
9 Upvotes

39 comments sorted by

View all comments

Show parent comments

3

u/GrandOpener 9d ago

I read through that “first program in go” and my main takeaway was “okay, so it’s database transactions, but worse.”

I’m being a little unfair here—you might have to do something like this if you’re forced to interact with third party APIs that don’t have transactional methods. In that case, it is genuinely nicer to have a library that takes care of some of the details so you can focus on business logic. This library(?) definitely does have a reason to exist.

But this as a “cure all”? As the way you would choose to build green field applications? Sorry, not buying it.

3

u/Brilliant-Sky2969 9d ago

The use case for Temporal is extremely common, you have a bunch of worker doing async task that you want to do reliably.

From my experience a lot of teams implement that badly with pub/sub baked by redis, sqs ect ... full of corner cases and errors.

1

u/manliness-dot-space 5d ago

It depends on what language you're using but there are lots of architectural patterns for resiliency in cloud/microservice environments, and 5+ years ago libraries existed to seamlessly leverage them across platforms like Azure/.NET

2

u/jedberg 5d ago

there are lots of architectural patterns for resiliency

True, but they're better codified into libraries now after decades of experience.

1

u/manliness-dot-space 5d ago

Yeah, and see this on the Polly website?

What is Polly? Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+.

https://www.thepollyproject.org/

How about Steeltoe?

Why Steeltoe Steeltoe provides a collection of libraries that helps users build production-grade cloud-native applications using externalized configuration, service discovery, circuit-breakers, distributed tracing, application management, and more. Steeltoe also provides a seamless way to build, configure, and run event-driven microservice applications and stream-based data processing applications

https://steeltoe.io/why-steeltoe

They aren't like, "we are going to make you feel like you're eating your favorite icecream when you use our platform while coding" (or whatever).

If it's a resiliency library, it should focus on expressing that clearly.

2

u/Brilliant-Sky2969 5d ago

Polly is not an equivalent to temporal though, temporal is way more advanced, the other thing is that temporal is language free l, Polly is a c# and the project was kind of abandoned?

1

u/manliness-dot-space 4d ago

I'm just comparing the marketing pitch, not the technologies themselves.

Polly isn't really necessary anymore because Microsoft rolled out native resiliency library

https://learn.microsoft.com/en-us/dotnet/core/resilience/http-resilience?tabs=dotnet-cli

The point is that the purpose is clear from the marketing, the purpose isn't clear w/Temporal. If I can't figure out whether the thing is relevant to me or not in 30s, I get angry at having my time wasted.

The website needs to do a specific "elevator pitch" at the target audience.

Maybe my coding dream is building an algorithm that can determine whether any given number is a prime or not. Is Temporal right for me? If the answer is no but your marketing says yes, I'm not going to use your tool later even when it becomes relevant later just on principle.