Node processes, when using cluster, cannot share the same engine object. As a result, the interaction with the engine itself should be as lightweight as possible.
Similar to what already came up in #3, I propose the following architecture using ZeroMQ and IPC.
Nodebindings will not interact with the engine directly, but only supply a simple interface that manages the IPC communication / encoding / decoding.
The Engine will listen on IPC calls, requesting PBF form requests, replying with PBF form results.
This task requires a whole range of changes:
[x] define PBF Request Schema
[x] define PBF Result Schema (API schema)
[x] implement PBF renderer Nepomuk
[x] implement IPC based process for serving requests
[x] adjust bindings to encode to PBF, render from PBF (no personal data required)
[x] implement ZeroMQ message passing between node-bindings (NodeProcesses) and Engine
Node processes, when using cluster, cannot share the same engine object. As a result, the interaction with the engine itself should be as lightweight as possible.
Similar to what already came up in #3, I propose the following architecture using ZeroMQ and IPC.
Nodebindings will not interact with the engine directly, but only supply a simple interface that manages the IPC communication / encoding / decoding.
The Engine will listen on IPC calls, requesting PBF form requests, replying with PBF form results.
This task requires a whole range of changes:
/cc @daniel-j-h