docs: convert standard diagrams from draw.io PNGs to inline Mermaid
Gitea renders mermaid inline, so the flow/state/hierarchy/DAG diagrams move to text-in-markdown: auto-layout (removes the manual overlap-prone draw.io step), diffable source, no committed binaries, and a dark-text theme so labels stay legible. Keep draw.io PNGs only for the two complex bespoke diagrams (logical architecture, env2 topology) where pixel control still wins. All 24 mermaid blocks validated by rendering.
This commit is contained in:
@@ -39,8 +39,43 @@ Both endpoints use the same `Protocol`. EF Core migration renames `Configuration
|
||||
|
||||
The `DataConnectionActor` Reconnecting state is extended:
|
||||
|
||||

|
||||
<!-- source: diagrams/primary-backup-failover-state-machine.drawio — edit, then re-export with export-drawio.sh -->
|
||||
```mermaid
|
||||
%%{init: {'theme':'base', 'themeVariables': {'textColor':'#111111','lineColor':'#555555','edgeLabelBackground':'#ffffff','fontSize':'15px'}}}%%
|
||||
flowchart TD
|
||||
C(["Connected"])
|
||||
BQ["Push bad quality<br/>to all subscribers"]
|
||||
RT["Retry active endpoint<br/>(5s interval)"]
|
||||
INC["_consecutiveFailures++"]
|
||||
BR{"Evaluate<br/>_consecutiveFailures"}
|
||||
SAME["Retry same endpoint"]
|
||||
FO["Failover<br/>- dispose adapter, switch _activeEndpoint, reset counter<br/>- create fresh adapter with other config<br/>- attempt connect"]
|
||||
NB["Keep retrying indefinitely<br/>(current behavior)"]
|
||||
RC(["On successful reconnect (either endpoint)<br/>1. Reset _consecutiveFailures = 0<br/>2. ReSubscribeAll() — re-create subscriptions on new adapter<br/>3. Transition to Connected<br/>4. Log failover event if endpoint changed<br/>5. Report active endpoint in health metrics"])
|
||||
|
||||
C -->|"disconnect detected"| BQ
|
||||
BQ --> RT
|
||||
RT -->|"failure"| INC
|
||||
INC --> BR
|
||||
BR -->|"< FailoverRetryCount"| SAME
|
||||
SAME -.->|"retry"| RT
|
||||
BR -->|">= FailoverRetryCount AND backup exists"| FO
|
||||
BR -->|">= FailoverRetryCount AND no backup"| NB
|
||||
NB -.->|"retry (round-robin n/a)"| RT
|
||||
FO -->|"connect succeeds"| RC
|
||||
FO -.->|"connect fails (round-robin: primary to backup to primary...)"| RT
|
||||
RC -->|"Transition to Connected"| C
|
||||
|
||||
classDef start fill:#d5e8d4,stroke:#82b366,color:#111111;
|
||||
classDef proc fill:#dae8fc,stroke:#6c8ebf,color:#111111;
|
||||
classDef dec fill:#fff2cc,stroke:#d6b656,color:#111111;
|
||||
classDef warn fill:#ffe6cc,stroke:#d79b00,color:#111111;
|
||||
classDef bad fill:#f8cecc,stroke:#b85450,color:#111111;
|
||||
class C,RC start
|
||||
class BQ,RT,SAME proc
|
||||
class INC,BR dec
|
||||
class FO warn
|
||||
class NB bad
|
||||
```
|
||||
|
||||
**On successful reconnect (either endpoint):**
|
||||
1. Reset `_consecutiveFailures = 0`
|
||||
|
||||
Reference in New Issue
Block a user