[HN Gopher] An open letter to the Temporal user community
___________________________________________________________________
An open letter to the Temporal user community
Author : roopakv
Score : 45 points
Date : 2022-02-16 20:32 UTC (2 hours ago)
(HTM) web link (docs.temporal.io)
(TXT) w3m dump (docs.temporal.io)
| swyx wrote:
| This letter is timed with our Series B announcement today! We
| just did a 1hr livestream here giving context and answering Q&A:
| https://www.youtube.com/watch?v=E40KwlxZJFI
|
| Additional coverage for more info:
|
| - https://www.geekwire.com/2022/temporal-is-a-unicorn-develope...
|
| - https://www.theregister.com/2022/02/16/temporal_103m_funding...
|
| - https://siliconangle.com/2022/02/16/temporal-raises-103-mill...
|
| - https://dailyuknews.com/tech/temporal-raises-103m-in-series-...
|
| - https://finance.yahoo.com/news/temporal-io-raises-103-millio...
|
| - https://www.computerweekly.com/blog/CW-Developer-Network/Tem...
|
| - https://www.indexventures.com/perspectives/everything-is-a-w...
| jffry wrote:
| Congratulations!
|
| (EDIT: links got fixed) For clickable links, remove the leading
| spaces so it doesn't get formatted as plaintext, and make
| newlines double to avoid them all being on one line
| swyx wrote:
| ah thanks... fixed! you would think i would know that having
| been on HN for like 7 years but i obviously dont do this very
| often
| shuntress wrote:
| So... what _actually is it_? I 've seen the other comments, I've
| clicked the links and scanned the blog posts. I get that it is a
| "resilient workflow engine" or whatever.
|
| If my SQL & PHP backend serving a basic web API to a React
| storefront is struggling to handle customer's states (carts,
| lists, orders, etc) how is this going to help?
|
| What are my engineers going to actually do?
| josephg wrote:
| What is temporal, in plain English? I can't make heads or tails
| of it from either this letter or from their homepage.
| swyx wrote:
| lots of answers already here, just throwing in mine :)
|
| Temporal is a workflow engine for managing distributed state.
| It abstracts away queues, databases, schedulers, state
| machines, load balancers/gateways and makes it so you don't
| have to be a distributed systems expert to get this right.
|
| To me there are four levels of appeal:
|
| 1. standardized, declarative system for timeouts and retries
| <-- most users start here
|
| 2. event sourced, highly fault tolerant internal architecture
| ---> we even like the term "fault oblivious" - when you write
| workflow code you can assume that it is robust to downtime in
| external APIs, or Temporal Server or Temporal Workers, the
| thing just keeps going until it hits a timeout or an actual
| application failure!
|
| 3. idiomatic SDKs for "workflows as code" -> no need to learn
| some JSON or YML based DSL, use all familiar software tooling
|
| 4. horizontally scalable architecture for every part of the
| system (key differentiator vs handrolled systems... although
| i'm not saying you should prematurely scale of course, just
| saying this architecture lets you scale without replatforming)
|
| Some projects that we get compared to (although of course we're
| not 1:1 competitors): Apache Airflow, AWS Step Functions, Argo
| Workflows, Sidekiq, BullMQ
|
| My 7 min intro: https://www.youtube.com/watch?v=CQhUL5RogXI
|
| Architecture principles (23mins)
| https://docs.temporal.io/blog/workflow-engine-principles
|
| Full blogpost: https://www.swyx.io/why-temporal/
| dustrider wrote:
| This seems to do a better job of explaining
| https://docs.temporal.io/docs/temporal-explained/introductio...
|
| From my take, an interesting way of dealing with scalable
| workflows and batch jobs. But I need to read more into it.
| chugh09 wrote:
| This blog does a good job of explaining it in plain english
| imo: https://docs.temporal.io/blog/charles-zedlewski-why-i-
| joined...
|
| ctrl + F to here "Temporal is a new kind of platform. It's not
| a database, cache, queue, or a means to run your code. It's a
| runtime for distributed applications that transparently manages
| their state at any scope and scale. By externalizing state to a
| generalized platform like Temporal, application teams get to
| outsource the majority of cross-cutting concerns presented by
| cloud applications. In doing so, applications become" if you
| dont want to read the whole thing
| djmagee wrote:
| Another excellent overview was just published this morning by
| Bryan Offutt:
| https://www.indexventures.com/perspectives/everything-is-a-w...
| rylandgold wrote:
| Hey, I'm Ryland and I work at Temporal.
|
| Temporal provides a unified backend for automatically managing
| implicit application state that is normally stored in transient
| queues, databases etc. Furthermore, Temporal does this without
| explicitly requiring the developer to think about and manage
| the state themselves. This means developers spend way more time
| building stuff that actually matters, and less time writing
| buggy reliability code.
|
| I personally find the best way to explain it is with an
| analogy. Back in the late 90s many developers built
| applications with C and therefore had to manage their own
| memory. For a long time, this was not wasted effort as it was
| the only real option. But then, Java came around and offered an
| experience where developers didn't have to manage their memory.
| And for the majority of apps, the performance and capabilities
| of Java were more than sufficient. At this point, writing the
| average application in C meant you were doing a serious amount
| of undifferentiated work. Furthermore, most developers weren't
| that great at memory management so choosing to do it by hand
| meant more work for a worse result.
|
| The value proposition of Temporal is nearly identical, but
| instead of manually managing memory with C, developers are
| manually managing state using queues, CRON services, databases
| and more. The result is a bunch of time spent doing
| undifferentiated things that a computer would have done better
| anyway.
| HillRat wrote:
| Basically, it's a distributed code-first workflow manager (as
| opposed to configuration-centric solutions that use BPML). It's
| a fork of Cadence, which was the author's project at Uber to
| create a single workflow manager for their platform.
|
| The use case is basically any kind of temporally-distributed
| workflow that you might use something like Airflow for, or else
| otherwise hack together with some combination of event buses,
| temp tables, and cronjobs. Its main charm is that you define
| the logic in code rather than templates, so you can intermix
| business logic directly into the workflow.
| jvican wrote:
| Would really love to see movement on integrating Temporal better
| with Scala on the JVM, just like it supports Java and Kotlin now.
| Would love to collaborate or help making this thing happen if you
| have many things on your plate.
| rrix2 wrote:
| Congrats to the folks involved. Building a long running (hours to
| days) workflow pipeline on top of Cadence was some of the most
| fun I had writing code at Uber. Stellar tooling, stellar team.
| Thaxll wrote:
| Temporal is such a powerful tool, really don't rollout your own
| job system using pub/sub, just use Temporal.
|
| At first it looks easy to use any pub/sub or DB to create a job
| system, but there are so many edge cases, I'm not even talking
| about scaling etc ... just having a solid job system that
| properly handle retries, error, durability, timeout etc ...
| djmagee wrote:
| IMO, this is the value of Temporal. You certainly can write
| your own system--but wouldn't you rather focus on writing code
| that directly addresses the unique value that you or your
| company offers?
| yevpats wrote:
| The technology is interesting but honestly I don't recommend it
| to any early stage startup as it has a very high learning curve,
| high maintainability, limited visibility and so on. Maybe if you
| got to a stage that you have a problem that temporal can solve
| and a separate team that can keep it alive and debug it.
| roopakv wrote:
| I get where you are coming from. However with their cloud
| offering you get to forget about some of the not easy parts of
| Temporal and just build something awesome while benefiting from
| all that temporal has to offer :)
| yevpats wrote:
| I agree it might solve part of the problem but I wouldn't
| jump into this on day 1 of your startup as because its a
| framework/platform you will be betting your whole company on
| this. Im not saying its not good just giving a warning to
| very early stage startups to try and use something like this
| when they have a problem and not before.
| swyx wrote:
| for what its worth we do have a super early stage (preseed)
| startup building on us and they're happy!
| https://www.youtube.com/watch?v=mHifpzMn6kA
|
| but yeah I would never say that we're for everyone. depends on
| your knowledge, needs, usecases!
| wmf wrote:
| This headline really makes good news look like bad news.
| jrockway wrote:
| Yup. I expected a shutdown, a response to widespread harassment
| allegations, or some sort of open source license change. But
| it's none of those things, they got funded!
| [deleted]
| [deleted]
| atarian wrote:
| Was this company launched by Uber or is it just based on Uber's
| open-source work?
|
| EDIT: According to https://blog.amplifypartners.com/our-
| investment-in-temporal/, Temporal was founded by 2 engineers at
| Uber who created an open-source orchestration engine called
| Cadence and then later decided to found Temporal.
| swyx wrote:
| yes correct. open source project started at Uber, project leads
| left and forked Cadence to start Temporal. origin story on
| podcast here https://docs.temporal.io/blog/gremlin-
| podcast#origin-story-o...
| ignoramous wrote:
| Shades of Amazon Simple Workflow, which was anything but
| simple... (: It stands along side SimpleDB as a deprecated
| AWS service (unofficially), no less.
|
| I guess, AWS gave up too soon on Maxim's vision.
| swyx wrote:
| i think its more that it took Max ~6 more years after
| building SWF + getting experience at Google + Uber before
| he finally got to the right abstraction with Temporal
___________________________________________________________________
(page generated 2022-02-16 23:00 UTC)