Skip to main content

Distributed Async Await

Version 1.0 (Unreleased)

tl;dr

The purpose of this document is to formalize Distributed Async Await-an open, vendor-neutral specification of a programming model based on async await and an underlying scalable and reliable distributed execution model.

  • Based on Functions and Promises
  • Simple to understand
  • Simple to develop
  • Simple to operate

Solve complex problems with simple code-Enjoy peace of mind

Context

Today, every application is a concurrent, distributed application. While many popular concurrent programming models have emerged, aiming to improve the developer experience for concurrent applications, no distributed programming models have emerged yet. Distributed Async Await aims to fill that gap.

Purpose

The purpose of this document is to formalize Distributed Async Await-an open, vendor-neutral specification of a programming model for building modern, concurrent and distributed applications with a delightful developer experience.

Do's

  • Standard programming model based on Functions and Promises
  • Simply protocols
  • Open ecosystem

Don'ts

  • No proprietary programming models such as workflows and activities
  • No complex technology stacks
  • No vendor lock-in
Developer Experience and Simplicity

Developer experience is often described through two lenses: the subjective lens of developer satisfaction and the objective lens of developer productivity. This specification ties developer experience to simplicity. We posit that a delightful developer experience emerges from systems that are:

  • Simple to understand
  • Simple to develop
  • Simple to operate

Structure of the specification

This specification consits of three prescriptive parts:

  1. Specification of the programming model
  2. Specification of the execution model
  3. Specification of the system model