We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Distributed Async Await • A new programming model for the cloud - Dominik Tornow - NDC Oslo 2024
Learn how distributed async/await revolutionizes cloud programming by enabling seamless handling of long-running processes, failures, and state across distributed systems.
-
Distributed async/await formalizes concurrent and distributed programming structures while preserving developer experience through functions and durable promises
-
Modern distributed applications face challenges with:
- Long-lived executions (minutes to days)
- Resource termination and process crashes
- Cross-process coordination
- State management across interruptions
- Partial failures and partial ordering
-
Traditional solutions like HTTP calls and job queues have limitations:
- HTTP requires maintaining connections
- Job queues lose execution context
- Both lack unified error handling
- Poor composability and developer experience
-
Key advantages of distributed async/await:
- Unified semantics for local and remote executions
- Built-in failure handling and recovery
- Resume semantics allow continuing from interruption points
- Maintains execution identity and integrity across processes
- Developer control over execution location and distribution
-
Core concepts:
- Durable promises with stable IDs for coordination
- Equivalent behavior between interrupted/resumed and continuous executions
- Composable functions and promises as universal abstractions
- First-class support for distribution in programming model
-
Practical benefits:
- Sequential-style code for distributed systems
- Automatic handling of partial failures
- No manual state management needed
- Natural expression of business logic
- Simplified development of long-running workflows