Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Async and concurrency

Note

Project policy: draft. This page is the only home of Shiin’s async and concurrency rules (ADR-0024).

Engine

The engine is pure and synchronous. It performs no I/O and uses no async runtime.

Adapters and services

Adapters and services may use Tokio, but it is confined:

  • The runtime is created in the binary and shut down before exit.
  • Libraries do not create their own runtime.
  • Engine crates never depend on an async runtime.

Concurrency

Evaluation is deterministic. Concurrent evaluations must not share mutable state.