Building Reliable Distributed Systems
Craft Conference�June 2, 2022
Budapest
Loren Sands-Ramshaw
Author of The GraphQL Guide
Full-stack developer
Language Runtime Engineer
@ Temporal.io
The TL;DR Intro
Temporal is the open source runtime for managing distributed application state at scale.
What is Temporal?
Why?
The most valuable, mission-critical workloads in any software company are long-running and tie together multiple services.
System Requirements
Orchestration
Event Sourcing
Workflows as Code
Status Quo
choreography
Temporal
orchestration
Commands
Queries
Cloud/Platform
App Devs
Microservices Death Star
Choreography vs Orchestration
Programming Model
Programming Model
Workflow
Activity
Timeouts and Retries
Workflow APIs
Monthly Billing
Signals and Queries
Server
DevTools
SDKs
tctl CLI
Status Quo
choreography
Temporal
orchestration
Commands
Queries
Cloud/Platform
App Devs
Outcomes
Business Transactions
Needs
Coinbase Quotes
“Temporal maintains the high level of reliability offered by the homegrown system while also providing tremendous amounts of visibility into running processes.”
Long Running Processes
Needs
Checkr Quotes
Data Pipelines
Needs
Descript Quotes
"We had one incident every week just on the transcription workflow because it was too complicated to maintain... we were afraid of doing any changes in that code path."
Infrastructure Provisioning
Needs
Examples
Temporal’s tenth rule
Any sufficiently complex distributed system contains an ad-hoc, undocumented, unscalable, and unreliable implementation of half of Temporal.
Use Temporal
Don’t use Temporal
Team
Community
Cloud
Temporal Cloud is a fully managed cloud offering of Temporal Server. Why Cloud?
“The frequency of production incidents has declined from once-a-week to virtually zero.”
“Temporal Cloud provides Snap a highly reliable and scalable foundation for Snap Stories, enabling us to deliver the amazing global experience our users have come to expect.”
Workflow Engine
Now… Scale This!
CAP Theorem
A Temporal cluster is eventually available and highly consistent
Network failures are prevented from reaching the application level.
The optional multi-cluster replication feature greatly increases system availability.
Temporal as a Distributed System
+ Replication
Thank You
temporal.io/ts
temporal.io/subscribe
temporal.io/youtube
temporal.io/slack
lorensr.me
@lorendsr
loren@temporal.io
How would you write Uber?
How would you write Uber?
Cancellation
Change of Route
Driver Lost
Uber Pool
Refunds
React Code Organization
=
Components
What React did for Frontend Programming