Learn

Architecture and ownership

Follow one navigation request from a typed Destination to a rendered Navigator stack and identify the owner of each object.

v0.1.0-dev.2Beginner

Architecture and ownership

Ark Navigation separates definition, mutable state, and Flutter rendering.

text
Destination + exact operation
        ↓
NavigationPort
        ↓
Graph resolution → Redirect → leave Guard → enter Guard
        ↓
NavigationController commits one atomic stack change
        ↓
NavigationSnapshot
        ↓
NavigationRouter renders Navigator pages and reports URI state

NavigationGraph is the immutable definition: Scopes, Modules, Mounts, routes, and policies. NavigationSession owns the mutable Controller and Flutter Router objects for one view. NavigationRuntime is optional coordination for several Sessions that share a Graph but never share a stack.

The object that creates a Session disposes it. A root StatefulWidget, an application scope, or a matching DI scope are valid owners. A global Session for every window is not: each Flutter View needs independent stack, history, and restoration state.

Feature code normally depends on NavigationPort. Widgets inside the navigation tree may read that narrow contract through BuildContext. Graph composition remains at the application root so feature Modules can be reused without knowing where they are mounted.

ARKTELOS

Purpose-built engineering systems for software that has to hold.