Internal oslo.messaging bus for convergence¶
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/heat/+spec/convergence-message-bus
Problem description¶
We need a message bus for the internal worker API of convergence.
Proposed change¶
Create a new worker service within heat-engine that is dedicated to handling internal messages to the ‘worker’ (a.k.a. ‘converger’) actor in convergence. Messages on this bus will use the ‘cast’ rather than ‘call’ method to anycast the message to an engine that will handle it asynchronously. We won’t wait for or expect replies from these messages.
The message types that will eventually be implemented on this bus are those marked with the @asynchronous decorator in https://github.com/zaneb/heat-convergence-prototype/blob/resumable/converge/converger.py
Alternatives¶
We could have a separate heat-worker daemon, but there appears to be no point in making life difficult for deployers as heat-engine can handle the same tasks.
We could mix this into the same service as the existing RPC API that is called by heat-api, but this is messy because the two have entirely different uses. There is already precedent for running another RPC service inside heat-engine, although we can’t reuse that because it listens on a queue specific to the engine id.
Implementation¶
Assignee(s)¶
- Primary assignee:
kanagaraj-manickam
Milestones¶
- Target Milestone for completion:
Kilo-3
Work Items¶
Implement the new worker service in the engine
Implement a client API to make it easy to send messages to the worker service
Dependencies¶
None