Updated Design: Runtime Editor Split (markdown)

Nick O'Leary 2018-03-08 00:08:34 +00:00
parent f60968a135
commit 3dc1e337e8
1 changed files with 33 additions and 8 deletions

@ -1,31 +1,56 @@
Currently, Node-RED is a monolithic entity that has both the editor and runtime packaged in one place.
The plan is to break them up into their own discrete packages that can be used separately.
The plan is to break them up into their own discrete packages to provide some more flexibility in how they are used.
- [Use Cases](#use-cases)
- [Headless](#headless)
- [Multi-user, single-tenet runtimes](#multi-user-single-tenet-runtimes)
- [Multi-user, multi-tenet runtimes](#multi-user-multi-tenet-runtimes)
- [Distributed](#distributed)
- [Scaled](#scaled)
- [Repurposed Editor](#repurposed-editor)
## Use Cases
### Headless device
### Headless
A device that runs a flow it is given. The flow is edited elsewhere and remotely pushed to the device (or hardcoded on the device).
- don't want the overhead of the editor that isn't going to be used
- supports http endpoints (just doesn't have full editor capability)
### Distributed Node-RED
### Multi-user, single-tenet runtimes
A node-red flow is edited in one place. When deployed, it gets carved up and different parts are pushed to different runtimes, either local or remote.
- A single hosted instance of the editor is backed by multiple runtimes - one per user or group of users
- The user access the editor and the underlying api requests are proxied to the appropriate runtime
- Authentication is handled at the proxy layer
- API requests can be proxied unmodified (other than auth tokens)
- Custom actions are added behind the deploy action
- Serves up the editor without a local version of the runtime
### Multi-user, multi-tenet runtimes
### Scaled Node-RED
- A single hosted instance of the editor is backed by multiple runtimes.
- The user access the editor and the underlying api requests are proxied to the appropriate runtime.
- Each runtime may host flows of different users that should not see each other
- The proxy layer provides a filtered view of the flow to ensure the editor only displays information available to the logged in user.
### Scaled
A node-red flow is edited in one place. When deployed, it gets sent to multiple runtimes to provide horizontal scaling.
- Custom actions are added behind the deploy action
- Serves up the editor without a local version of the runtime
### Node-RED Editor
### Distributed
A node-red flow is edited in one place. When deployed, it gets carved up and different parts are pushed to different runtimes, either local or remote.
- Custom actions are added behind the deploy action
- Serves up the editor without a local version of the runtime
### Repurposed Editor
The Node-RED editor is used for another system entirely that shares the same node/wire visualisation.