Skip to content

Instantly share code, notes, and snippets.

@garyfeng
Last active February 2, 2020 01:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save garyfeng/a9775c66dc499b28910c0d0f994cbde3 to your computer and use it in GitHub Desktop.
Save garyfeng/a9775c66dc499b28910c0d0f994cbde3 to your computer and use it in GitHub Desktop.
System Diagrams for Benchmark
%% This is the source for Mermaid diagram generator
%% Open https://mermaid-js.github.io/mermaid-live-editor, and paste in this content to the editor window on the left
graph TD
subgraph Data Topics
D1([Observables])
D2([Responses])
D3([Diagnostics])
D1 --> UX4
D2 --> UX4
D3 --> UX4
UX4[Streaming Client]
end
UX4 -- Stream/Batch Data Transport --> J
subgraph Cloud
J[fa:fa-cloud Kafka<br/>Stream Intake]
subgraph Diagnostic
CD3([Topic: Diagnostics])
K([fa:fa-flash Flink<br/>Diagnositic processing])
end
subgraph Responses
CD2([Topic: Responses])
K3([fa:fa-flash Kafka<br/>Sessionization])
CD2 --> K3
end
subgraph Observables
CD1([Topic: Observables])
K2([fa:fa-flash Lambda<br/>State-time processing])
end
subgraph Dashboard
M([fa:fa-dashboard Dashboard])
end
subgraph Persistent Store
O[fa:fa-database Process Data<br/>Feature Files]
%% L([fa:fa-database HBase<br/>Data Store])
L[fa:fa-database Diag Data Tables]
N[fa:fa-database Response Data Tables]
end
J --> CD1
J --> CD2
J --> CD3
K3 -- Response Data --> N
CD1 -- Sessionization --> K2
K2 -- Feature extraction--> O
O -- Obs stats --> M
CD3 --> K
K -- heartbeat Analysis --> L
L -- Diag stats --> M
N -- Response stats --> M
end
%% This is the source for Mermaid diagram generator
%% Open https://mermaid-js.github.io/mermaid-live-editor, and paste in this content to the editor window on the left
graph TD
subgraph External Content
Z([External<br/>Vendors]) --Task Authoring -->Z1[Web Apps]
end
subgraph IBIS
X([IBIS]) -- Item Authoring -->X1[IBIS Export]
end
subgraph Design System
A([Benchmark<br/>Design System]) -->|Benchmark Authoring| B[Benchmark Items]
end
subgraph Content API
X1 -- ETS XML -->Y
Z1 -- QTI/PCI-like package -->Y
B -- Benchmark DSL --> Y([DSL Transpiler])
Y -- Benchmark DSL --> C[Benchmark Content]
C -->|External Content| D([Blaxbox API])
C -->|DSL-compatible| E([Item Viewer])
C -->|Tools| F([fa:fa-calculator Tool<br/>rendering])
D --> C1([Content API])
E --> C1([Content API])
F --> C1([Content API])
end
subgraph Bookmap API
BM([DAR<br/>Bookmap])
BM2([Bookmap API])
BM3([MDPS<br/>Barcode]) -- Login --> BM4([SDC<br/>Bundle Map])
BM -->BM4
BM4 -- Student-form assignment --> BM2
BM5([SDC<br/>MyNAEP]) -- School data --> BM4
BM5 -- Accommodation --> BM2
BM6([ID<br/>IBIS AUs]) -->BM
%% X1 -.->BM6
end
subgraph Lock-down Browser
LB([fa:fa-chrome Chromium]) -- Electron-ize -->LB1([Lock-down Browser])
LB1 -- Diagnostic info tracking --> LB2
end
LB2([System Heartbeat]) -- Diagnostic data --> UX4
subgraph Frontend UI/UX
C1 -- GraphQL --> UX1[Item/Task Content]
UX1 -- Rendering --> UX2([Item/Task Rendering])
UX2 -- Actions --> UX3([State Management])
UX3 -- State updates --> UX4[Log Data]
BM2 -- GraphQL: next item? -->UX3
LB1 -.-> UX2
end
subgraph Cloud
UX4 -- Stream/Batch Data Transport --> J([fa:fa-cloud Kafka<br/>Stream Intake])
J --> K([fa:fa-flash Flink<br/>Stream/batch processing])
K --> L([fa:fa-database HBase<br/>Data Store])
K -- Realtime --> M([fa:fa-dashboard Dashboard])
L -- Periodic --> M
L -- Cross Validation --> N[fa:fa-database Response Data]
L -- Feature Extraction --> O[fa:fa-database Process Data<br/>Feature Files]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment