# ADR 2026 05 20

| Field             | Value                                             |
| ----------------- | ------------------------------------------------- |
| File              | `ADR-2026-05-20.md`                               |
| Author            | Nicolette Martine Langendam — NikiDigitals        |
| Location          | `LES-Master/docs/decisions/`                      |
| Decisions covered | ADR-000102 through ADR-000105                     |
| Session type      | LES-BUILD-ARCH-001 — Master Architecture Diagrams |

## Context

This file records all decisions made on 20 May 2026 during the LES-BUILD-ARCH-001 session. The session produced the first two C4 architecture diagrams for LES — Level 1 System Context and Level 2 Container — and established the conventions governing their storage and future development.

## Architecture Decisions

### ADR-000102 — C4 Level 1 System Context Diagram Produced — LES-DIAG-000001

**Decision:** The C4 Level 1 System Context diagram for LES is produced, versioned, and committed. Assigned document code LES-DIAG-000001.

**Files:**

* `LES_C4_level1_v1.0.drawio` — source file
* `LES_C4_level1_v1.0.png` — exported image

**Location:** `LES-Master/docs/architecture/diagrams/`

**Contents — Person:**

| Name      | Description                                                                                |
| --------- | ------------------------------------------------------------------------------------------ |
| Nicolette | Primary user. Monitors and manages all life domains through the interactive LES dashboard. |

**Contents — External Systems:**

| System                                   | Purpose                                                         |
| ---------------------------------------- | --------------------------------------------------------------- |
| Microsoft Entra ID                       | Identity and access management — authenticates all LES sessions |
| Azure OpenAI Service                     | LLM inference infrastructure for the AI agent layer             |
| Microsoft Defender for Cloud             | Security monitoring, threat detection, and compliance posture   |
| Banking & Financial Data Sources         | Financial data ingested by LES-FIN                              |
| Health Tracking Apps & Devices           | Biometric and health data ingested by LES-HLT                   |
| Productivity, Scheduling & Meeting Tools | Schedule and task data synced with LES-OPS                      |
| Email Services                           | Email data retrieved and managed by LES-OPS                     |

**Rationale:** The C4 Level 1 diagram answers the question every stakeholder asks first — what is this system, who uses it, and what does it connect to? It establishes the external boundary of LES before any internal complexity is shown. Grouping external systems into logical boundaries (Security & Identity, Productivity & Communication) makes the diagram readable at a glance.

**Consequences:** LES-DIAG-000001 committed. GitBook publication deferred to a dedicated documentation session. Level 2 produced in the same session.

### ADR-000103 — C4 Level 2 Container Diagram Produced — LES-DIAG-000002

**Decision:** The C4 Level 2 Container diagram for LES is produced, versioned, and committed. Assigned document code LES-DIAG-000002.

**Files:**

* `LES_C4_level2_v1.0.drawio` — source file
* `LES_C4_level2_v1.0.png` — exported image

**Location:** `LES-Master/docs/architecture/diagrams/`

**Contents — Containers:**

| Container                    | Technology                  | Purpose                                                                                 |
| ---------------------------- | --------------------------- | --------------------------------------------------------------------------------------- |
| LES-DASH                     | React / JavaScript          | Single-page application — interactive LES dashboard                                     |
| LES API Gateway              | FastAPI / Python            | Central API layer — authentication, authorisation, request routing                      |
| Module Services Layer        | FastAPI / Python            | Nine services — one per life domain — each owns its business logic and Azure SQL schema |
| Azure SQL Database           | Azure SQL                   | Central data store — nine schemas — one per module — West Europe region                 |
| LES-AGT — Agent Orchestrator | Custom Python               | Cross-cutting AI coordination layer — agent task routing and LLM inference requests     |
| Power BI Analytics Layer     | Power BI / Microsoft Fabric | Reporting and intelligence dashboards — evolves to Fabric in Phase 3                    |

**Key architectural decisions embedded in this diagram:**

* LES-AGT is positioned as an independent cross-cutting layer alongside the module services — not inside any single module. This reflects its role as a system-wide intelligence coordination layer operating across all nine life domain modules.
* The internal LES system boundary is clearly drawn — separating what LES owns from what it consumes externally.
* The Power BI → Fabric evolution is noted at the container level — establishing the Phase 3 transition in the architecture from day one.

**Rationale:** The Level 2 diagram answers the question every technical stakeholder asks next — what are the major building blocks and how do they communicate? It gives enough technical detail to have meaningful architectural conversations without descending into implementation specifics.

**Consequences:** LES-DIAG-000002 committed. Level 3 Component diagrams to be produced as each module enters active development — not before.

### ADR-000104 — Architecture Documentation File Convention Established

**Decision:** Each set of C4 diagrams is accompanied by a markdown documentation file recording the diagram contents, container and system descriptions, communication protocols, key architectural decisions, and file locations.

**First file:** `LES-C4-ARCH-001.md` — documents LES-DIAG-000001 and LES-DIAG-000002.

**Location:** `LES-Master/docs/architecture/`

**Rationale:** Diagrams without documentation are incomplete. A collaborator or future reviewer should be able to read the documentation file and understand what is in each diagram without opening draw\.io. The documentation file is also the GitBook-ready version of the diagram set — formatted for publication without modification.

**Consequences:** All future diagram sets follow this convention — one documentation file per diagram group, committed alongside the diagram files.

### ADR-000105 — C4 Level 3 Component Diagrams Deferred to Module Development

**Decision:** C4 Level 3 Component diagrams are not produced now. They are produced as each module enters active development — starting with LES-FIN in Phase 1.

**Context:** Level 3 diagrams show the components inside each container — the internal structure of each module service. Producing these before the module is designed would produce diagrams that are immediately out of date.

**Rationale:** Architecture documentation should follow the build — not precede it by months. Level 1 and Level 2 are stable enough to document now because they represent the overall system shape, which is unlikely to change materially. Level 3 documents implementation decisions that do not exist yet.

**Consequences:** Level 3 diagrams scheduled to begin with LES-FIN Phase 1 development. One Level 3 diagram per module produced at the point of active development.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nikidigitals.gitbook.io/les/03-architecture/decision-log/phase-0-foundation/adr-2026-05-20.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
