Subscribe
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 witharista.subscriptions.Operation::INITIAL- One message with
arista.subscriptions.Operation::INITIAL_SYNC_COMPLETE- this signifies the transition from initial data to udpates
- prevents the client from needing to hold the last operation to find transition point
Nmessages with either:arista.subscriptions.Operation::UPDATEDarista.subscriptions.Operation::DELETED- these can happen in any order or frequency until the subscription/connection is closed
RPC Definition
The protobuf definition of GetAll is defined as such (for ExampleConfig):
rpc Subscribe (ExampleConfigStreamRequest) returns (stream ExampleConfigStreamResponse);