Mist is built as what’s sometimes called a modular monolith.

The opaque nodes in the above flowchart indicate a future component.

Components

Each component is a Rust crate that lives in the Mist monorepo.

ComponentDescription
runnerThe entry point, responsible for starting apps from components that export axum routers.
apiThe REST API, used by the Service to manage the Mist instance.
authnThe authentication service, responsible for user authentication.
jobsHandles the execution of background jobs.
dbThe data layer, used by all components to store data.