The Nominal stack#
Every library, connector, and API leads to one underlying data store. Click a box to see its docs.
---
config:
layout: elk
themeVariables:
fontFamily: Verdana, Geneva, Arial
fontSize: 20px
---
%% bottom to top, so the data store is at the top
flowchart BT
%% the logos are the home page's (landing/logos/), with the xmlns an <img> needs, and the
%% instro wordmarks are instro's docs logos. The Nominal mark and the wordmarks come in white
%% for dark pages and black for light. Paths start from the project's or the site's root, which
%% _ext/snippet_paths.py turns into paths from the page that includes this snippet, and
%% mermaid.css sizes the logos and shows one of each pair
subgraph tools["SW Connectors"]
teststand["<img src='../_static/logos/teststand.svg' alt=''>NI TestStand"]
veristand["<img src='../_static/logos/veristand.svg' alt=''>NI VeriStand"]
flexlogger["<img src='../_static/logos/flexlogger.svg' alt=''>NI FlexLogger"]
simulink["<img src='../_static/logos/simulink.svg' alt=''><span>MathWorks<br>Simulink</span>"]
%% invisible links stack the connectors in two rows, TestStand and VeriStand on top
flexlogger ~~~ teststand
simulink ~~~ veristand
end
subgraph domain["Proprietary Languages"]
labview["<img src='../_static/logos/labview.svg' alt=''>NI LabVIEW"]
matlab["<img src='../_static/logos/matlab.svg' alt=''><span>MathWorks<br>MATLAB</span>"]
end
subgraph languages["General Languages"]
rust["<img src='../_static/logos/rust.svg' alt=''>Rust"]
go["<img src='../_static/logos/go.svg' alt=''>Go"]
python["<img src='../_static/logos/python.svg' alt=''>Python"]
end
subgraph hw["HW Connectors"]
instro["<img src='../_static/logos/instro.svg' alt=''><img class='wordmark on-dark' src='../_static/logos/instro-logo-solid-white.svg' alt='instro'><img class='wordmark on-light' src='../_static/logos/instro-logo-solid-black.svg' alt='instro'>"]
end
%% no Grafana logo: Grafana Labs' trademark policy needs its written permission to use one on
%% a website, so the box has an original dashboard icon (_static/logos/dashboard.svg). Its
%% marks go before a noun ("Grafana plugin"), with ® on first use
subgraph viz["Visualization"]
grafana["<img src='../_static/logos/dashboard.svg' alt=''><span>Grafana®<br>plugin</span>"]
end
autogen["Generated Bindings"]
subgraph access["Access Layer"]
%% in this order, the layout draws REST, gRPC, Postgres from left to right
grpc["gRPC API"]
pgwire["Postgres protocol"]
rest["REST API"]
end
%% the data store stands out: .hero (mermaid.css) sets its logo large, above a bold label,
%% with a heavier outline, and its style line below gives it a denser fill
store[("<img class='hero on-dark' src='../_static/logos/nominal-white.svg' alt=''><img class='hero on-light' src='../_static/logos/nominal-black.svg' alt=''><span>Nominal data store</span>")]
tools --> domain
domain --> autogen
%% dotted, as instro streams to Nominal only if you choose to
hw -.-> languages
languages --> autogen
viz --> autogen
autogen --> access
access --> store
click teststand href "../../ni-teststand/" "NI TestStand"
click veristand href "../../ni-veristand/" "NI VeriStand"
click flexlogger href "../../ni-flexlogger/" "NI FlexLogger"
click simulink href "../../simulink/" "Simulink"
click instro href "../../instro/" "instro"
click grafana href "https://grafana.com/grafana/plugins/nominal-nominalds-datasource/" "Grafana plugin catalog"
click labview href "../../ni-labview/" "NI LabVIEW"
click matlab href "../../matlab/" "MATLAB client"
click python href "../../python/" "Python client"
click rust href "https://github.com/nominal-io/nominal-client-rs" "Rust client on GitHub"
click go href "https://github.com/nominal-io/nominal-streaming-go" "Go streaming client on GitHub"
click sql href "../../sql-guides/" "SQL"
click store href "../../platform/data-model/" "Data model"
click rest href "../../api/" "REST API reference"
click grpc href "../../api/grpc/" "gRPC API reference"
click pgwire href "../../sql-guides/postgres-clients/" "Postgres clients"
%% translucent greys work on light and dark pages; the text keeps the theme's color
classDef default fill:#8080801a,stroke:#808080
style tools fill:#8080800d,stroke:#80808080
style domain fill:#8080800d,stroke:#80808080
style languages fill:#8080800d,stroke:#80808080
style autogen fill:#8080800d,stroke:#80808080
style access fill:#8080800d,stroke:#80808080
style hw fill:#8080800d,stroke:#80808080
style viz fill:#8080800d,stroke:#80808080
style store fill:#80808040,stroke:#808080
NI®, NI LabVIEW®, NI TestStand®, NI VeriStand®, and NI FlexLogger® are registered trademarks of NI®. MATLAB® and Simulink® are registered trademarks of The MathWorks, Inc. Grafana® is a registered trademark of Grafana Labs. All other trademarks and logos are the property of their respective owners.