Similar to the current ingress layer, distribute the boundary between the HTTP/WS servers and the agents.
Scope
Define a "middleware" protocol for:
Creating the subscription
Streaming over a subscription
Agent management/control
In the #77 shared storage:
Agent registry
Persistent info of the subscriptions
:thinking: Not sure about the necessity of having the distributed implementation done or just the local one, benchmark a local one to decide an prioritize.
Context
HTTP/WS Server can run as Node.js clusters to scale in the same instance, usual load balancer (e.g. HAProxy) and multiple machines for horizontal stateless scaling.
Agents run a process per agent instance of a program, are long running, and communicate through the middleware distribution layer. Worker groups of competing consumers (using worker-threads or/and in multiple process across machines) can balance the CPU load in the same instance or/and in multiple machines.
Similar to the current ingress layer, distribute the boundary between the HTTP/WS servers and the agents.
Scope
Define a "middleware" protocol for:
In the #77 shared storage:
:thinking: Not sure about the necessity of having the distributed implementation done or just the local one, benchmark a local one to decide an prioritize.
Context
HTTP/WS Server can run as Node.js clusters to scale in the same instance, usual load balancer (e.g. HAProxy) and multiple machines for horizontal stateless scaling.
Agents run a process per agent instance of a program, are long running, and communicate through the middleware distribution layer. Worker groups of competing consumers (using worker-threads or/and in multiple process across machines) can balance the CPU load in the same instance or/and in multiple machines.