Skip to content

Commit 217e59f

Browse files
committed
docs: replace structural text diagrams with svg
1 parent 2f4ddee commit 217e59f

25 files changed

Lines changed: 132 additions & 115 deletions

docs/docs/concepts.md

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,7 @@ This is an explanation of the records and their boundaries. For the exact YAML f
1717

1818
## The record chain
1919

20-
```text
21-
Environment definition -> published environment version -> execution scope
22-
|
23-
Workflow definition -> immutable workflow version ----+-> planning session
24-
|
25-
candidate -> selected plan
26-
|
27-
execution run
28-
|
29-
task attempts, transfers, artifacts, provenance, audit
30-
```
20+
<img src={useBaseUrl('/img/architecture/record-chain.svg')} alt="Environment definitions become published versions and scopes; immutable workflow versions join planning sessions; selected plans lead to execution runs and observed task, transfer, artifact, provenance and audit records." />
3121

3222
The arrows express references, not a single mutable object. A planning session preserves a snapshot of the workflow, scope, inventory, topology, profiles, constraints, and selected algorithms. A later discovery refresh can create new inventory for future sessions, but it does not change that earlier comparison.
3323

docs/docs/engine.md

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
11
---
2+
23
id: engine
34
title: Execution control plane
45
sidebar_label: Execution control plane
56
description: How the daemon persists work, dispatches planning and execution, and recovers runtime state.
67
---
78

9+
import useBaseUrl from '@docusaurus/useBaseUrl';
10+
811
AkôFlow's server is a persistent control-plane daemon. The HTTP API validates and stores requests; a durable event loop dispatches work that may take longer than one request. The daemon is therefore responsible for recording intent and state transitions, while runtime adapters perform provider-specific work.
912

1013
This is an orchestration explanation, not an API contract. Use the [planning and execution state reference](./reference/planning-and-execution-states) for states and endpoints.
1114

1215
## From request to durable work
1316

14-
```text
15-
HTTP request
16-
|
17-
validate + persist
18-
|
19-
typed queue job
20-
|
21-
persistent dispatcher ----> planning handler
22-
\---> execution handler
23-
\---> cloud, transfer, monitoring, and maintenance handlers
24-
```
17+
<img src={useBaseUrl('/img/architecture/engine-request-dispatch.svg')} alt="An HTTP request is validated and persisted as a typed queue job, then dispatched to planning, execution, cloud, transfer, monitoring or maintenance handlers." />
2518

2619
The API can acknowledge a request before its job starts. In particular, an execution request is accepted into the durable queue; the workflow execution run is created when the daemon begins processing that job. In read-only instance mode the server serves inspection APIs but does not run mutating background work.
2720

docs/docs/explanations/evidence-and-provenance.md

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
11
---
2+
23
id: evidence-and-provenance
34
title: Plan-versus-observed evidence and provenance
45
sidebar_label: Evidence and provenance
56
description: How AkôFlow preserves predictions, runtime observations, artifacts, lineage, and audit history.
67
---
78

9+
import useBaseUrl from '@docusaurus/useBaseUrl';
10+
811
AkôFlow does not overwrite a plan with a completed run. It preserves the prediction used to choose a placement and records the execution evidence beside it. This makes disagreement inspectable: it can indicate an inaccurate model, an unexpected runtime condition, or a different data-preparation path.
912

1013
Use [Provenance and audit](../guides/data/provenance-and-audit) to query the records. This explanation describes why they remain separate.
1114

1215
## Two timelines for one selected plan
1316

14-
```text
15-
selected plan
16-
assignments + predicted metrics + predicted timing
17-
|
18-
v
19-
execution run
20-
|
21-
task attempts + handles + transfers + logs + artifact manifests
22-
|
23-
execution trace and provenance records
24-
```
17+
<img src={useBaseUrl('/img/architecture/evidence-provenance-timeline.svg')} alt="A selected plan holds predictions; the execution run produces runtime observations; those observations form the execution trace and provenance records." />
2518

2619
The plan retains predicted makespan and cost. Each task attempt records its planned and allocated resource, runtime, queue, transfer, interference, and overhead timing where available. The execution trace combines task and transfer observations into observed metrics. A completed trace marks the observed result feasible; it does not certify that the prediction was accurate.
2720

docs/docs/explanations/network-modeling.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
---
2+
23
id: network-modeling
34
title: Network modeling and data movement
45
sidebar_label: Network modeling
56
description: How data dependencies, topology links, routes, and observed transfers relate to a workflow plan.
67
---
78

9+
import useBaseUrl from '@docusaurus/useBaseUrl';
10+
811
Network modeling lets planning distinguish a local dependency from data that must cross a resource boundary. It starts with bytes declared by the workflow, but its result depends on the selected resource assignments and the directed topology included in the execution scope.
912

1013
This is an explanation of the model. Use [SimGrid modeling](../guides/infrastructure/simgrid) to configure bandwidth and latency, or the [topology reference](../reference/execution-scopes-and-topologies) for the exact document fields.
1114

1215
## From dependency to possible flow
1316

14-
```text
15-
producer activity -- control dependency --> consumer activity
16-
| ^
17-
+---- data dependency: logical bytes --+
18-
19-
producer resource -- directed topology route --> consumer resource
20-
```
17+
<img src={useBaseUrl('/img/architecture/network-flow-model.svg')} alt="A control dependency orders producer and consumer activities, a data dependency declares logical bytes, and a directed topology route is considered when their selected resources differ." />
2118

2219
The control dependency makes the consumer wait for the producer. The matching data dependency gives the planner a logical byte volume. If a selected plan puts both activities on the same resource, no network transfer time is added for that edge. If they are on different resources, the topology is consulted for a route.
2320

docs/docs/explanations/observed-timing.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
---
2+
23
title: Interpreting observed timing and cost
34
sidebar_label: Observed timing and cost
45
description: The difference between flows, queue and stage totals, makespan, and observed execution cost.
56
---
67

8+
import useBaseUrl from '@docusaurus/useBaseUrl';
9+
710
Execution evidence contains both a wall-clock result and accumulated activity
811
measurements. They answer different questions. A large accumulated transfer or
912
queue total does not by itself mean that the workflow took that many seconds on
@@ -71,14 +74,7 @@ overhead, and separately sums observed transfer durations and transferred bytes.
7174
Those sums are **accumulated stage time**. Parallel work is counted once for each
7275
activity that experienced it.
7376

74-
```text
75-
Clock time: 0s ----------- 10s
76-
activity A: [ runtime 10s ]
77-
activity B: [ runtime 10s ]
78-
79-
makespan: 10s
80-
accumulated compute: 20s
81-
```
77+
<img src={useBaseUrl('/img/architecture/accumulated-time.svg')} alt="Two ten-second activities run concurrently. Makespan is ten seconds, while accumulated compute time is twenty seconds." />
8278

8379
The same applies to concurrent transfers and queue waits. Use makespan to answer
8480
"how long did the workflow take?" Use accumulated values to answer "where did

docs/docs/explanations/planning.md

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
---
2+
23
title: Planning, candidates, and selected plans
34
sidebar_label: Planning and plans
45
description: Why planning sessions produce candidates before one placement becomes executable.
56
---
67

8+
import useBaseUrl from '@docusaurus/useBaseUrl';
9+
710
Planning answers a bounded placement question: given one workflow version and one execution scope, which feasible assignment should be used for the chosen objective? It is not execution, and it does not reserve or start infrastructure.
811

912
Use [Plan a workflow](../guides/workflows/planning) for the Desktop or API procedure; this explanation covers the model behind it.
@@ -12,22 +15,7 @@ Use [Plan a workflow](../guides/workflows/planning) for the Desktop or API proce
1215

1316
The session stores the workflow version, execution scope, network topology, environment snapshots, resources, activity profiles, deadline, budget, interference data, and algorithm selection. Freezing these inputs makes a later comparison meaningful: each algorithm evaluates the same recorded infrastructure universe instead of whatever discovery happens to return later.
1417

15-
```text
16-
workflow version + scope + snapshots + constraints
17-
|
18-
v
19-
planning session
20-
|
21-
+--------------+--------------+
22-
| |
23-
algorithm run algorithm run
24-
| |
25-
candidate(s) candidate(s)
26-
\ /
27-
\---- select one candidate -/
28-
|
29-
schedule plan
30-
```
18+
<img src={useBaseUrl('/img/architecture/planning-session-lifecycle.svg')} alt="Frozen workflow and infrastructure input create a planning session. Independent algorithm runs produce candidate sets, from which one candidate becomes a schedule plan." />
3119

3220
## Candidates are alternatives, not executions
3321

docs/docs/getting-started.md

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ slug: /getting-started
66
description: Choose the shortest AkôFlow documentation path for installation, a first run, operations, concepts, or API integration.
77
---
88

9+
import useBaseUrl from '@docusaurus/useBaseUrl';
10+
911
# Choose where to start
1012

1113
AkôFlow plans and executes scientific workflow DAGs on simulated or connected infrastructure, then preserves the plan, observed execution, data movement, artifacts, audit events, and provenance. This page is a map of the documentation; it does not teach an individual workflow.
@@ -54,19 +56,9 @@ The Desktop and HTTP API operate on the same persisted records. The API is prefe
5456

5557
Read [Core concepts](./concepts) for the vocabulary and record relationships. Continue to [Engine](./engine) for control-plane behavior and [Runtimes](./runtimes) for execution-provider boundaries.
5658

57-
The central lifecycle is:
58-
59-
```text
60-
environment + execution scope + network
61-
62-
versioned workflow DAG
63-
64-
candidate plans → selected plan
65-
66-
execution run
67-
68-
observed metrics + data + provenance
69-
```
59+
The central lifecycle is shown below.
60+
61+
<img src={useBaseUrl('/img/architecture/lifecycle-overview.svg')} alt="AkôFlow lifecycle: an infrastructure boundary and workflow version produce candidate plans; one selected plan produces an execution run and observed evidence." />
7062

7163
A plan is not an execution. It predicts an assignment within a frozen workflow and infrastructure boundary. A run records what happened when that plan was dispatched.
7264

docs/docs/guides/interface-tour.mdx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2+
23
id: interface-tour
34
title: Tour the AkôFlow interface
45
sidebar_label: Interface tour
56
description: Learn how the AkôFlow Desktop navigation maps to the control-plane API.
67
---
78

89
import AnnotatedScreenshot from '@site/src/components/AnnotatedScreenshot';
10+
import useBaseUrl from '@docusaurus/useBaseUrl';
911

1012
AkôFlow Desktop is the visual client for the AkôFlow daemon. The application does not run infrastructure commands from the browser renderer: it requests the daemon API, and the daemon performs discovery, planning, execution, data movement, and infrastructure operations.
1113

@@ -40,11 +42,7 @@ AkôFlow pages preserve the relationship between records. An execution belongs t
4042

4143
For example:
4244

43-
```text
44-
Workflows › Workflow › Plan › Execution › Activity
45-
46-
Environments › Environment › Inventory › Resource › Provisioning › Operation
47-
```
45+
<img src={useBaseUrl('/img/architecture/interface-ownership-hierarchy.svg')} alt="Workflow pages lead from workflow to plan, execution and activity. Infrastructure pages lead from environment through inventory and resource to provisioning and operation." />
4846

4947
Use the back control below the breadcrumb to return to the logical parent. Its destination remains correct even when the page was opened from search or a notification.
5048

docs/docs/guides/operations/troubleshooting.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
---
2+
23
title: Troubleshooting
34
description: Diagnose daemon access, authentication, connection, discovery, planning, execution, storage, and snapshot problems.
45
---
56

7+
import useBaseUrl from '@docusaurus/useBaseUrl';
8+
69
# Troubleshooting
710

811
Start at the first failing boundary. Desktop is a client of the Engine API; the Engine then talks to Docker/BuildKit, runtimes, remote connections, storage and cloud providers.
912

10-
```text
11-
Desktop → Engine API → credential/connection → runtime or provider → workload/data
12-
```
13+
<img src={useBaseUrl('/img/architecture/troubleshooting-boundary.svg')} alt="Troubleshoot from the Desktop through the Engine API, credentials and connections, then the runtime or provider and workload or data." />
1314

1415
Set the endpoint and token before using the checks below:
1516

docs/docs/modules.md

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,17 @@
11
---
2+
23
id: modules
34
title: AkôFlow components and boundaries
45
sidebar_label: Components and boundaries
56
---
67

8+
import useBaseUrl from '@docusaurus/useBaseUrl';
9+
710
AkôFlow is a single control-plane daemon with a REST API, a persistent event queue, planning and execution services, and pluggable infrastructure adapters. The Desktop application is the primary client of that API. AkôFlow does **not** deploy a separate Workflow Engine into every environment.
811

912
## At a glance
1013

11-
```text
12-
AkôFlow Desktop / API clients
13-
| authenticated HTTP
14-
v
15-
+-----------------------------------------------------------+
16-
| AkôFlow daemon |
17-
| REST API -> application services -> SQLite repositories |
18-
| | |
19-
| persistent event loop |
20-
| / | \\ |
21-
| planning execution cloud lifecycle |
22-
| | |
23-
| data preparation/transfers |
24-
+-------------------------+---------------------------------+
25-
|
26-
runtime and connection adapters
27-
/---------------+---------------\\
28-
Local Kubernetes SSH / Slurm Cloud
29-
```
14+
<img src={useBaseUrl('/img/architecture/control-plane-components.svg')} alt="AkôFlow Desktop and API clients call one daemon. The daemon contains API services, a persistent event loop, repositories, planning, execution, cloud lifecycle and data-preparation responsibilities, then uses adapters for local, Kubernetes, SSH or Slurm, and cloud targets." />
3015

3116
The daemon owns orchestration and state. Target environments expose compute, storage, and network capabilities; they do not need an AkôFlow server installed inside each environment.
3217

0 commit comments

Comments
 (0)