Push can be controlled by a programmatic API. However a durable topic still needs to be created and registered in both RichFaces and the Java Messaging Service.

The programmatic API consists of a `TopicKey` which addresses the topic, and a `TopicsContext` which is used for publishing messages.

For the purpose of observing events from the server, the client creates a permanent connection to the server either by using a WebSocket connection or the long-polling method. Permanent connections are managed by the Atmosphere Framework.

In this example, the message doesn't contain any data - it instructs the client to re-render part of the page. In this case it forces the client to load new unique ID.