HNHacker News
TopNewBestAskShowJobs

lorendsr

555 karma · joined February 13, 2011

submissionscomments
lorendsr··on Building Reliable Distributed Systems in Node.js
This post talks about the durable execution systems, which include Azure Durable Functions, Amazon SWF, Uber Cadence, Infinitic, and Temporal.

Durable execution systems run our code in a way that persists each step the code takes. If the process or container running the code dies, the code automatically continues running in another process with all state intact, including call stack and local variables.

Durable execution makes it trivial or unnecessary to implement distributed systems patterns like event-driven architecture, task queues, sagas, circuit breakers, and transactional outboxes. It’s programming on a higher level of abstraction, where you don’t have to be concerned about transient failures like server crashes or network issues.

lorendsr··on Ask HN: What's a build vs. buy decision that you got wrong?
You are correct, that's the main difference. I wrote some more on the topic of data workflow engines like Airflow vs general-purpose application development workflow engines like Temporal here: https://community.temporal.io/t/what-are-the-pros-and-cons-o...
lorendsr··on Ask HN: What's a build vs. buy decision that you got wrong?
Temporal jobs/tasks are called workflows because the code is effectively translated into workflow steps—i.e. code progress is made by workers, and each step is persisted so that if the worker dies, you don't lose anything—another worker picks up in the exact same place in the code, with all local variables and threads intact. It also provides helpful built-in features like retries and timeouts of anything that might fail, like network requests, and the ability to "sleep" for arbitrary periods without consuming threads/resources (other than a timer in a database that is automatically set up for you when you call `sleep('1 month')`).
lorendsr··on Ask HN: What's a build vs. buy decision that you got wrong?
I agree about the limitations of DSLs.

Temporal is a workflow engine that doesn't use a DSL or nerfed version of a programming language. It runs your arbitrary code with any of the supported runtimes (currently Go/Java/Node/Python).

I'm able to write, deploy, and maintain workflow code by myself and use their cloud service for persistence and admin UI.

lorendsr··on 1.0.0 Release of the Temporal TypeScript SDK
Yeah, an unfortunate name collision! Name was chosen when Temporal the company was founded in 2019.
lorendsr··on 1.0.0 Release of the Temporal TypeScript SDK
Oops, that used to be normal-looking JS! Will fix, thanks
lorendsr··on 1.0.0 Release of the Temporal TypeScript SDK
Co-author here! For those unfamiliar with Temporal, here's an excerpt from the post:

We think of Temporal as a "durable code execution framework." We execute your backend code in a durable fashion: by persisting each step your program takes, we can recover your program's state in the event of failure—even if the machine goes offline or loses power in the middle of execution. We also durably retry and timeout external calls, so if your services or databases are unreachable or returning errors, we will keep retrying until they're back in a good state. This allows backend engineers to develop at a new, higher level of abstraction that is oblivious to faults in the system.

lorendsr··on Temporal raises $103M in Series B funding
It certainly could, but not a fit for a real-time game. In order to make Temporal general-purpose, fault-tolerant, and scalable, it had to do more database writes / have higher latency than real-time game backends.
lorendsr··on Temporal raises $103M in Series B funding
A language runtime that runs your code in durable way (every step of program execution is persisted so that if there’s a failure—even the machine running the program losing power—execution can be continued), and a service that enables that durability in a scalable way.
lorendsr··on Temporal raises $103M in Series B funding
Manually is writing code to read and write to the DB. Automatically is writing code, and all the code state (local variables, execution progress) is persisted for you.
lorendsr··on Temporal raises $103M in Series B funding
By “there’s no DB”, burgundy means that the dev doesn’t interact with the DB—the state of all their code is automatically being saved to the DB at each step.
lorendsr··on Temporal Series B
I believe Temporal is the best-in-class way to architect/code a wide range of distributed systems. Glad to hear it's so well funded!
lorendsr··on The Temporal TypeScript SDK
Oh cool, makes sense! What are you working on that has external devs contributing?
lorendsr··on The Temporal TypeScript SDK
Temporal is IMO the best way to write reliable code. Great for microservice orchestration, async work, long-running tasks, crons, distributed transactions/SAGAs. And a great benefit to the TS SDK versus the other language SDKs is that it runs workflow code in a V8 virtual machine to help ensure determinism (writing non-deterministic workflows is a class of potential bugs in Temporal).
lorendsr··on Stripe Payment Links
I'd like to be able to enable email notifications for just payment link payments. Currently only option is all successful payments.

Link page: "Get an email after every successful payment by managing your settings."

Settings page: "Successful payments. Receive a notification for every successful payment."

lorendsr··on Stripe Payment Links
I'd like to be able to enable PPP so that the page shows lower prices for those located in countries with less purchasing power.
lorendsr··on John Resig: Introducing the GraphQL Guide
Chapters 1-5 are apollo-free! And the queries and mutations used in the apollo client chapters are applicable outside apollo.
lorendsr··on John Resig: Introducing the GraphQL Guide
Apollo has been in the lead for a while—it currently has 125k weekly downloads on npm, vs Relay's 20k.

You can use the new render prop API instead of the HOC API if you don't like wrapping.

The data fetching itself is separate from the view layer—it's all done by Apollo. From a maintenance perspective, listing data needs is great to have in the view layer, colocated with the components that use them.

You can manually fetch data via GraphQL and put in Redux, but there are a ton of benefits to having a library like Apollo manage the store for you. Automatic normalization, querying from either store or server (or both), optimistic mutation updates, etc.

lorendsr··on John Resig: Introducing the GraphQL Guide
Would definitely recommend GraphQL over GRPC!

We'll go over how to generate types or add them manually, but the rest of the book is in ecmascript.

lorendsr··on John Resig: Introducing the GraphQL Guide
It's node: `apollo-server-express`

https://www.apollographql.com/docs/apollo-server/

lorendsr··on Show HN: Meteor-Now – Deploy MeteorJS (YC S11) Apps with 1 Line
This is great
lorendsr··on The NSA: An Inside View
I don't believe the NSA should be giving data (or even just "tips") on citizens to LE. It's either illegal or done under a law I don't know about. Do you know what this is talking about?

>FISA surveillance was originally supposed to be used only in certain specific, authorized national security investigations, but information sharing rules implemented after 9/11 allows the NSA to hand over information to traditional domestic law-enforcement agencies, without any connection to terrorism or national security investigations.

https://www.eff.org/deeplinks/2013/08/dea-and-nsa-team-intel...

lorendsr··on The NSA: An Inside View
I just mean that I wasn't told what to write by a USG PR person. The only thing I heard from the NSA about it was that I didn't have to redact anything.
lorendsr··on The NSA: An Inside View
That sounds illegal. In same article:

>Wiretap tips forwarded by the SOD usually come from foreign governments, U.S. intelligence agencies or court-authorized domestic phone recordings. Because warrantless eavesdropping on Americans is illegal, tips from intelligence agencies are generally not forwarded to the SOD until a caller's citizenship can be verified, according to one senior law enforcement official and one former U.S. military intelligence analyst.

"Generally" should be always.

lorendsr··on The NSA: An Inside View
MINARET was used in the 60's and 70's. It led to the passing of FISA, which made it illegal to look at or pass on US citizen data unless a judge suspected them of being a foreign agent.
lorendsr··on The NSA: An Inside View
I think it was important for the citizens to know what powers they have given the NSA. They did not have an accurate sense of that before Snowden. But he released a lot more than that, much of which will hurt the NSA's capabilities.
lorendsr··on The NSA: An Inside View
I believe so.
lorendsr··on The NSA: An Inside View
Thanks for letting me know about parallel construction - I hadn't heard of it.

You're right, abuses probably have happened more often than those caught.

lorendsr··on The NSA: An Inside View
No offense taken. I was not asked to write this, nor guided in its contents by the government.
lorendsr··on The NSA: An Inside View
I meant that the NSA is only looking at your information if a judge suspects that you are a foreign agent. It will not look at your information to determine whether you have done something else illegal, which is what it would do if it were part of a police state.
← PreviousPage 2 of 3Next →