Data state
A publisher typically holds some data on topics which it updates according to any data update events it might receive.
The data held by the publisher on the topics it provides is referred to as its state. It is up to the publisher whether the data state is managed as a whole or on topic by topic basis.
It is the responsibility of the publisher to initialize its state and keep it updated as appropriate. Clients that subscribe to topics usually want to know the current state of the data relating to that topic and the publisher provides this as an initial topic load message. Clients are notified of all changes to that state by the publisher sending out delta messages.
A publisher typically has its own data model represented by classes written to support the data for the publisher. Ways in which such a data model can be managed are discussed in Designing your data model.
Initial state
A publisher's data typically has some initial state which can be updated during the life of the publisher. The state clearly must be set up before a client requires it but exactly when this is done is up to the publisher.
The state of the data as a whole can be set up when the publisher starts. This can be done in the initialLoad method where all topics required can be set up and the data loaded as appropriate.
Alternatively, the state of the data relating to a topic can be initialized when the topic is added, which is not necessarily when the publisher is started.
Another option is that the initial state is provided by a data feed as it connects (or is connected to). If data is provided by a server connection, the initial state can be set up when the server connection is notified to the publisher or more typically the server provides an initial topic load message.
Data integrity
Providing data state
If clients are to use the fetch facility to obtain the current state of topics, it will be necessary to consider the implementation of the fetchForClient method of the publisher.
Stateful and stateless topics
The topics that the publisher provides can store data state, but not all topics store data state. Topics that store data state are called stateful topics. Topics that do not store data state are called stateless topics.
The publisher has different mechanisms for publishing data through stateful or stateless topics. For more information, see Publishing messages.
This page last modified: 2015/05/28