Component delivery
component_delivery
is an optional field in the bridge configuration section of a worker configuration file.
This field configures the set of components that a worker instance receives updates about, for entities that it receives updates about (see Active read access).
It acts as a whitelist, and takes precedence over both query-based interest and chunk-based interest. In other words, you need to whitelist a component (or set checkoutAllInitially
to true
) before you can set up QBI or CBI to receive updates about it.
Filtering components
By default, only components with checkout_initially
set to true
are sent to the worker instance as a result of chunk-based interest. (The worker instance might receive updates on other components due to having write access authority, or because of query-based interest.)
To control component filtering, use the following fields of component_delivery
:
checkoutAllInitially
(boolean). By default, this is set tofalse
, which means only the components withcheckout_initially
set to true are sent to the worker instance when it has interest in an entity.If set to
true
, all components are sent to the worker instance when it has interest in an entity.override
maps fully-qualified component names to component delivery settings.Components without an override use the default message delivery settings as specified in the
default
field. A worker instance only receives updates about them ifcheckoutAllInitially
is set totrue
.
The four permutations of these settings for a particular component C
therefore lead to the following behavior, for a worker instance W
with write access permission to and interest in C
:
checkoutAllInitially |
checkout_initially override |
Behavior |
---|---|---|
false or not specified |
false or not specified |
W does not receive updates about C |
true |
false or not specified |
W receives updates about C |
false or not specified |
true |
W receives updates about C |
true |
true |
W receives updates about C |
The worker instance can also change the set of components it has interest in at runtime - see the API documentation (C++, C#, Java) for more details.