by interpol_p on 3/9/24, 3:15 AM with 138 comments
by valenterry on 3/9/24, 11:04 AM
Maybe call it "removes as much friction as possible compared to local functions" but please don't call it "feels [exactly] like local functions". It's simply impossible and pretending so will just cause trouble.
by eqvinox on 3/9/24, 11:45 AM
"If it's predicted to be transient, Differential will retry the operation on a healthy worker before the client even notices." [https://docs.differential.dev/advanced/predictive-retries/]
I… er… wat? Does that mean this behavior is nondeterministic, driven by what some extra component cooks¹ up on a per-call basis?
…
Doing this without developer input is such a horribly bad idea, and then debug it when something (not even in the RPC layer) goes wrong?
[Edit:] "You can turn this feature on for your cluster using the Console. It's off by default." – a breath of relief.
--
¹ I really had to resist the temptation to say "hallucinates" there.
by pjmlp on 3/9/24, 7:27 AM
RPC, even if running on the same machine, is distributed systems land.
by JonChesterfield on 3/9/24, 8:55 AM
I think it's a distributed language runtime where you write functions in typescript and the runtime deals with passing data between machines.
The website is quite good at presenting the system as a nice thing that does nice things and you should like it and it's all very nice. It does a very poor job of convincing me that it works properly. I'd want to know how the scheduler works and how it handles mutable state in the presence of network partitions.
Also just found a caveat which amounts to they've got the implementation wrong:
> Arguments must be JSON serializable. This means that you can pass strings, numbers, booleans, arrays, objects, and null. You cannot pass functions, promises, or other non-serializable objects
by kgeist on 3/9/24, 1:31 PM
But I'm still confused:
>Monolithic codebases don't have to result in monolithic services.
Why would I want to replace straighforward function calls with network calls in my monolith?
>By using a centralised control-plane, Differential transparently handles network faults and machine restarts with retries, all without changing your existing programming paradigm. It is designed to be a drop-in replacement for any function call that you'd like to make distributed and reliable.
"Centralization" and "reliability" don't sound like words that often come together. What if the control plane goes down? Unless they have a cluster? It's all self-imposed problems anyway: if we don't have network calls in the monolith, we don't have all those problems in the first place (which need to be solved with retries etc.)
by CipherThrowaway on 3/9/24, 5:16 AM
by eqvinox on 3/9/24, 7:44 AM
by nextaccountic on 3/9/24, 7:25 AM
Or like rspc (in Rust) https://www.rspc.dev/
by EdSchouten on 3/9/24, 7:53 AM
by emilehere on 3/18/24, 8:08 PM
by rco8786 on 3/9/24, 12:54 PM
But I think it's a little dangerous to market this as "feels like local functions". It glosses over a lot of really important technical considerations (like, the network and all the dragons that come with it) which will eventually bite people who don't understand that, and will immediately turn people off who do understand that.
I'm not a marketing or copy expert by any means, but what might be a neat product is (rightfully) getting criticized in the comments here for the positioning.
by moltar on 3/9/24, 7:59 AM
It seems a bit of a chicken and egg in this case.
A service needs to register itself with a control plane. But for the service to start it needs to get a request (via lambda invocation).
by lunarcave on 3/9/24, 5:06 PM
Ok, this blew up, and I appreciate the engagement. We will attempt to get to all the questions.
We are still polishing the initial offering, so if the documentation seems lacking, it's because it very much is so. Honestly, we did not anticipate having this many eyes on the project this early.
by jahewson on 3/9/24, 5:22 AM
by bugbuddy on 3/9/24, 8:27 AM
by mblode on 3/9/24, 5:37 AM
by novoreorx on 3/9/24, 4:33 PM
by ushakov on 3/9/24, 10:09 AM
by syngrog66 on 3/9/24, 9:10 PM
"Kids , get off my lawn."
by syngrog66 on 3/9/24, 9:04 PM
"Sir, its The Fallacies of Distributed Computing for you, on line 1!"
by danlugo92 on 3/9/24, 2:01 PM