Create new custom protos to be used as RabbitMQ message payloads
Context
The plan to move to a RabbitMQ-based scheduler involves defining a set of structured message payloads. Since we already use a lot of protos, using protos here also makes sense and will allow us to reuse some of the REAPI messages directly, simplifying the message serialisation/deserialisation code.
Task Description
We will have a few new custom protos which will be the messages sent on the various message queues. These protos should be treated as documentation, and have clear comments about their overall purpose and the reason for each element. The messages to create are (WIP names):
- ExecutionJob
- CreateOperation
- UpdateOperation
- RetryInfo (maybe)
- BotStatus (maybe)
See https://docs.google.com/presentation/d/1ykkhIq9MTliUQAkidBSfnPOm1ylZ0dJ2Fde_myyJJvI/edit#slide=id.p for details on the contents of these messages.
Acceptance Criteria
This is done when an initial set of well-documented custom protos are merged, covering at least messages 1-3 above.