From 470a687110c8fb5e985f8f9b19174a8749619210 Mon Sep 17 00:00:00 2001 From: cinereal Date: Wed, 25 Jun 2025 10:20:25 +0200 Subject: [PATCH] update diagrams --- architecture.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/architecture.md b/architecture.md index e6ea0b1..5821987 100644 --- a/architecture.md +++ b/architecture.md @@ -127,9 +127,32 @@ At the core of Fediversity lies a NixOS configuration module for a set of select To ensure reproducibility, all software will be packaged with Nix. -To reach our goals, we aim to implement the following interactions between [actors](#actors) (depicted with rounded corners) and system components (see the [glossary](#glossary), depicted with rectangles). +To reach our goals, we aim to implement the following interactions. + +The used legend is as follows: + +- Circle: [actor](#actors) +- Angled box: type +- Rectangle: value +- Rounded box: function +- Diamond: state +- Arrow: points towards dependant + +For further info on components see the [glossary](#glossary). + +![](https://git.fediversity.eu/Fediversity/meta/raw/branch/main/architecture-docs/interactions-migration.svg) +### Configuration data flow + +This data flow diagram refines how a deployment is obtained from an operator's application configuration and a hosting provider's runtime setup. + +An **application module** specifies operator-facing **application options**, and a **resource mapping** which determines the application's underlying implementation. Application modules can be supplied by external developers, which would curate application modules against that interface. + +For its runtime setup, a hosting provider has to supply a **resource mapping** that would take their self-declared **provider configuration** (which determines the *available* resources) and the output of an application's resource mapping (which determine resource *requirements*) and produce a **configuration**. This configuration ships with a mechanism to be *deployed* to the infrastructure (which is described by the environment, and features the required resources), where it will accumulate **application state**. + +Applications and runtime environments thus interface through **resources**, the properties of which are curated by Fediversity maintainers. + +![](https://git.fediversity.eu/Fediversity/meta/raw/branch/main/architecture-docs/interactions-fediversity.svg) -![](https://git.fediversity.eu/Fediversity/meta/raw/branch/main/architecture-docs/interactions.svg) ### Service portability