[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)