Hosting Model Decision Tree — click any node to see why it matters
flowchart TD Start(["New deployment"]):::start Q1{"Is the device
often offline?"}:::decision Q2{"Data sovereignty
forbids 3rd-party hosting?"}:::decision Q3{"Ops capacity to run
a database 24/7?"}:::decision Q4{"Sustained volume
above 5k stmts/sec?"}:::decision Embedded["Embedded LRS
(with sync to central)"]:::outcome SelfHostedSov["Self-hosted
open source"]:::outcome SaaS["Hosted SaaS LRS"]:::outcome SelfHostedScale["Self-hosted open source
(Ralph or scaled Learning Locker)"]:::outcome EitherFits["Hosted SaaS or
self-hosted (either fits)"]:::outcome Start --> Q1 Q1 -->|Yes| Embedded Q1 -->|No| Q2 Q2 -->|Yes| SelfHostedSov Q2 -->|No| Q3 Q3 -->|No| SaaS Q3 -->|Yes| Q4 Q4 -->|Yes| SelfHostedScale Q4 -->|No| EitherFits click Start call showHostingNode("Start") click Q1 call showHostingNode("Q1") click Q2 call showHostingNode("Q2") click Q3 call showHostingNode("Q3") click Q4 call showHostingNode("Q4") click Embedded call showHostingNode("Embedded") click SelfHostedSov call showHostingNode("SelfHostedSov") click SaaS call showHostingNode("SaaS") click SelfHostedScale call showHostingNode("SelfHostedScale") click EitherFits call showHostingNode("EitherFits") classDef start fill:#1e293b,stroke:#0f172a,color:#fff,font-size:15px,font-weight:bold classDef decision fill:#b45309,stroke:#78350f,color:#fff,font-size:14px,font-weight:bold classDef outcome fill:#0d9488,stroke:#134e4a,color:#fff,font-size:14px linkStyle default stroke:#64748b,stroke-width:2px,font-size:13px

Step Details

Click any node in the decision tree to see why that question matters and which platforms typically fit each outcome.

Start — new deployment
Decision — a question to answer
Outcome — a hosting model that fits