-
Notifications
You must be signed in to change notification settings - Fork 0
Distributed pipeline mode #60
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestepicMajor feature that needs to be broken down before starting workMajor feature that needs to be broken down before starting work
Milestone
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestepicMajor feature that needs to be broken down before starting workMajor feature that needs to be broken down before starting work
Is your feature request related to a problem? Please describe.
HAPipeline mode makes it so that multiple nodes can be running a pipeline at once. The issue is that only one node can participate in the process, and all the other nodes are sitting there not doing anything.
Describe the solution you'd like
In a distributed mode, something would need to be set up where the pipeline will run on each node. Each pipeline will run all steps concurrently, and there would be some message brokering service that hands
DataContextobjects between nodes.Describe alternatives you've considered
I think a message broker service would be the best way forward because running our own service discovery and direct node communication doesn't really make sense in the architectural design of Watergrid. The idea is that there are a minimal number of service dependencies outside of the library itself, which hosts the pipeline and context protection.
Additional context
This issue will probably need to be an epic, as this will be require several smaller steps to fully implement.
Implementation
PipelineLockfunction to serialize/deserialize context objects #73PipelineLockpub/sub methods (check for messages, get X messages, publish) #74Pipelineclass