Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
mfateev
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
11 ms
·
61.
▲
by
mfateev
6y ago
https://stackoverflow.com/questions/61157400/temporal-workfl...
62.
▲
by
mfateev
6y ago
The reason is that workflows are inherently imperative. Configuration formats work well for domains where declarative programming makes sense. For example, Terraform defines "what should be done" instead of how it should be done.
63.
▲
by
mfateev
6y ago
In the future WebAssembly will do it out of the box.
64.
▲
by
mfateev
6y ago
Try temporal.io. It is just a Java library without any code generation and AspectJ. It also allows to write synchronous code while Flow was only asynchronous.
65.
▲
by
mfateev
6y ago
The change in approach is intentional. It is still possible to use the old method, but for the majority of cases, it is just too heavyweight. There are two main problems with versioning entire workflows: 1. Need to keep the workers with old
66.
▲
by
mfateev
6y ago
I agree in principle that there is not single tool for every possible situation. At the same time I witnessed hundreds of cases when developers spent inappropriate amount of time developing "abstractions into application layer" in
67.
▲
by
mfateev
6y ago
The Temporal/Cadence/SWF operate as libraries any application can include to be able to implement workflow and activity logic. So hooking into low-level VM event loop was not an option. So they rely purely on event sourcing to re
68.
▲
by
mfateev
6y ago
The article is pretty naive. It writes code against the low level API which was never intended for workflow writers and then complains that it is too complicated. He had to use the high level library ( https://docs.aws.amazon.com&
69.
▲
by
mfateev
6y ago
This mentality leads to systems that are a mess of callbacks, don't scale, and practically impossible to maintain. You could make the same argument about SQL databases. Why do you need to understand their architecture, learn arcane SQL
70.
▲
by
mfateev
6y ago
Look at temporal.io. I believe we managed to get rid of the original SWF rough edges while maintaining the "workflow as code" approach. And the best part is that it is open source and you can run it anywhere yourself.
71.
▲
by
mfateev
6y ago
I personally think that any such standard would be inferior to any general purpose programming language. Independently of my opinion on the standard I think the best implementation platform for it would be temporal.io.
72.
▲
by
mfateev
6y ago
I'm original tech lead of SWF and later of the Cadence Workflow (cadenceworkflow.io) and Temporal Workflow (temporal.io) open source projects. AMA.
73.
▲
by
mfateev
6y ago
As a team lead of the Cadence/Temporal it is really amazing to hear such a feedback. Thank you! BTW. You can AMA about the technology here.
74.
▲
by
mfateev
6y ago
There is #ruby-sdk channel in the Temporal Slack: https://join.slack.com/t/temporalio/shared_invite/zt-c1e99p8...
75.
▲
by
mfateev
6y ago
Temporal has an externally contributed Ruby client. It is going to be open sourced very soon.
76.
▲
by
mfateev
6y ago
WebAssembly allows deterministic execution (with caveats: https://github.com/WebAssembly/design/blob/master/Nondetermi... ) of any code. I think it is a perfect platform for such type of testing.
77.
▲
by
mfateev
7y ago
Go error handling is a good example of this. So far all the attempts to reduce the repetitive `if err != nil { ... }` through some abstraction failed. Look at https://github.com/golang/go/issues/32825
78.
▲
by
mfateev
7y ago
I mean systems that have to scale to hundred of millions of users and guarantee durability in presence of infrastructure and software failures. Cadence is used in production by over 100 teams at Uber and multiple outside companies. For exam
79.
▲
by
mfateev
7y ago
Learn Cadence Workflow ( https://cadenceworkflow.io/ ). It implements a new way to build distributed systems using fault tolerant virtual memory. It lowers the complexity bar for hardcore backend programming by eliminating th
80.
▲
by
mfateev
7y ago
Yes, it is technically possible to use Cadence instead of Piper/Airflow. The reason the Piper/Airflow is used is mostly historical. It was around for quite a time and Cadence is a relatively new project.
81.
▲
by
mfateev
7y ago
DSL is DOMAIN specific language. But it is common mistake to call GENERIC workflow definition a DSL. My opinion is that DOMAIN specific languages are awesome when they are used for a specific narrow domain. For example AWS CloudFormation te
82.
▲
by
mfateev
7y ago
We don't have a public design document. This presentation contains some details about the internal architecture: https://www.youtube.com/watch?v=5M5eiNBUf4Q
83.
▲
by
mfateev
7y ago
(1) It simplifies the programming model. There is no way to serialize a state of the call stack through a library in most programming languages. You mentioned that Cadence is similar to C# wait/async. The SWF Flow library is. But the C
84.
▲
by
mfateev
7y ago
Cadence is above :). It allows: Integrate any DSL without modiying the core service. Internally at Uber there are at least half dozen DSLs running on top of it. It allows to write code that hides all the complexity that leads to the mess of
85.
▲
by
mfateev
7y ago
If only SWF was extended to run deciders on AWS Lamda. Without this the main advantage of the Step Functions is hosting. I personally would rather see an integrated system where the Step Functions are a natural extension of SWF not a comple
86.
▲
by
mfateev
7y ago
It is the latter. The workflow state object is chached including the goroutines the workflow code is blocked on. And the new events are applied to the cached object.
87.
▲
by
mfateev
7y ago
gRPC is not exposed to the Cadence users directly. They program against the client side library that completely hides the communication mechanism. And you are free to choose any object serialization mechanism. Currently JSON is the default
88.
▲
by
mfateev
7y ago
It could be solved by Celery, but it would also require a database and Celery doesn't scale that well unless runs on top of Redis which is not really fault tolerant. Also actions invocation with guarantees and exponential retries is no
89.
▲
by
mfateev
7y ago
TChannel has very limited language support and is essentially deprecated. gRPC is supported by majority of mainstream languages and is under active development.
90.
▲
by
mfateev
7y ago
Look at the Cadence samples. You write code as a synchronous event handler, but it is interpreted as a workflow. https://github.com/uber/cadence-java-samples
More ›