Temporal is an application state management systems company.
The company was founded by two experts in application state management, who previously led the design and development of Simple Workflow at AWS, which was the first technology to solve the state management problem.
But let’s stop and share some definitions.
Application state management (as TechTarget reminds us) is the process of maintaining knowledge of an application’s inputs across multiple related data flows that form a complete business transaction — or a session — to understand the condition of the app at any given moment.
“In computer science, an input is information put into the program by the user and state refers to the condition of an application according to its stored inputs — saved as variables or constants. State can also be described as the collection of preserved information that forms a complete session,” explained Tom Nolle, on Search Unified Communications.
So how does application state management dovetail with the Amazon Simple Workflow Service (Amazon SWF)?
AWS reminds us that Amazon SWF makes it easy to build applications that coordinate work across distributed components.
According to the AWS technical specification pages, “In Amazon SWF, a task represents a logical unit of work that is performed by a component of an application. Coordinating tasks across the application involves managing intertask dependencies, scheduling and concurrency in accordance with the logical flow of the application.”
Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state.
Back to Temporal then, this is an MIT licensed platform for unifying and managing application state.
Temporal co-founder and CEO Maxim Fateev provides the following comment which he feels validates his firm’s technology, “The average business application now lives across dozens of stateful servers and services, which has been great for flexibility and scale, but it’s also made applications increasingly brittle and difficult to troubleshoot or enhance.”
The sentiment here points to the fact that the benefits of cloud deployment are tremendous, but the cost of cloud application complexity is not sustainable.
We can also say that containerisation and service-based architectures require engineers to manage state, a time consuming and error prone process which shifts the software development focus from business logic to brittle plumbing.
According to Fateev and team, “Developers have historically relied on database transactions to maintain application consistency, but this is not an option for scalable cloud applications. So they’re forced to crudely assemble infrastructure like queues, databases, CRON jobs and more in order to reach some semblance of a cohesive application experience.”
He says that Temporal provides a consistent and unified backend for stateful applications that empowers developers to use the languages, tool stacks, and deployment environment of their choice.
Netflix tunes in
As an example use case, Netflix chose Temporal as the foundation for its next-gen CI/CD system which will be used by almost every Netflix developer.
“We’ve been using Temporal as a critical and core component in developing our next-gen CI/CD platform at Netflix, where it’s being used to help orchestrate fast, safe and reliable software delivery to multiple cloud providers’ datacentres around the world,” said Rob Zienert, Netflix senior software engineer.
Netflix engineers now spend less time writing logic to maintain application consistency or guard against failures because Temporal does it for them inside the development workflow.
Why Temporal exists
The fact that cloud applications are getting into a (right old) state over their state management capabilities due to the inherent complexity they are now being constructed with should come as no major surprise i.e. we know that the intertask dependency management, scheduling and concurrency logic responsibilities and requirements that exist in an application’s inputs across multiple related data flows is no point-and-click fix… which is why Temporal exists.
Perhaps it’s about time eh?