Adds TransactionUpdateLight that consists only of the request_id and the DatabaseUpdate<F>. This is emitted when the query param &light=true is set (unless the update is sent to the caller in which case a full update is sent).
Adds flags: enum CallReducerFlags { FullUpdate, NoSuccessNotify } to ClientMessage. When NoSuccessNotify is set, the host will not send back an empty update to the caller on success without the caller having subscribed to any affected queries. This is exposed in the SDK via ctx.set_reducer_flags.my_reducer(CallReducerFlags::NoSuccessNotify). When the default FullUpdate is used, full updates are sent, whether the caller was subscribed to the relevant queries or not.
@Centril I'm happy to review the CLI changes - Do you have recommendations on how to test this? Should I just regenerate bindings for an example client for each language?
Description of Changes
Does two things:
TransactionUpdateLight
that consists only of therequest_id
and theDatabaseUpdate<F>
. This is emitted when the query param&light=true
is set (unless the update is sent to the caller in which case a full update is sent).flags: enum CallReducerFlags { FullUpdate, NoSuccessNotify }
toClientMessage
. WhenNoSuccessNotify
is set, the host will not send back an empty update to the caller on success without the caller having subscribed to any affected queries. This is exposed in the SDK viactx.set_reducer_flags.my_reducer(CallReducerFlags::NoSuccessNotify)
. When the defaultFullUpdate
is used, full updates are sent, whether the caller was subscribed to the relevant queries or not.TODO:
API and ABI breaking changes
This breaks the websocket API/protocol.