Subscribe first returns the initial state (fully-specified messages) and then any received updates.
The first messages received are effectively the result of a GetAll). Once existing state has been sent to the client, any changes to resource entities are streamed back to the client. The update messages will represent what was updated and can either be a diff/partial or a fully-specified model.
Any filters apply both to the initial state and updates.
Clients can determine whether a given message is part of the initial
GetAll or an update via the
arista.subscriptions.Operation enum field on the
StreamResponse type for the given resource. This enum can
be found here.
The flow of messages follows these steps:
Nmessages with either:
The protobuf definition of
GetAll is defined as such (for
rpc Subscribe (ExampleConfigStreamRequest) returns (stream ExampleConfigStreamResponse);