=========================== Tango event system glossary =========================== Most of the terms listed here are explained in more detail in :ref:`primer`. .. glossary :: Tango device server A process where Tango devices reside. Tango events can only be published by device servers. admin device The Tango device that represents the :term:`device server ` process itself. For a device server started with ``python MyServer.py inst``, the admin device will be called ``dserver/MyServer/inst``. event supplier A singleton in the Tango device server process that manages the :term:`event channel` and publishes Tango event data to the appropriate :term:`ZMQ topic` over the :term:`event socket`. Tango client A process that makes requests to Tango devices. This may or may not be Tango device server. Tango pure client A Tango client that is not a device server. event consumer A singleton in the Tango client process that manages connections to the event supplier's ZMQ sockets and dispatches events to the event callbacks. subscribe A :term:`Tango client` requesting to receive events from a particular :term:`event stream` from a :term:`Tango device server`. See :ref:`subscribing`. unsubscribe A :term:`Tango client` requesting to no longer receive events from a particular :term:`event stream`. See :ref:`unsubscribing` event socket The :term:`ZMQ socket` used to send event data. heartbeat socket The :term:`ZMQ socket` used to send :term:`heartbeat events `. event stream The (Tango object, event type) pair that describes events that a client wishes to subscribe to. Depending on the event type, the Tango object can be a device, an attribute or a pipe. For example, a client may wish to subscribe to ``archive`` events for the ``foo/bar/pub/coolfactory`` attribute. event channel The :term:`event socket` and :term:`heartbeat socket` of a :term:`Tango device server`. heartbeat event A peroidic event sent by the :term:`event supplier`. Used by the :term:`keep-alive mechanism` to detect when the :term:`event channel` is no longer available. server counter A counter incremented by the :term:`event supplier` whenever an event is sent over an :term:`event stream`. This counter is sent a long with the event data to the client. discarded event A event with the same :term:`server counter` as the previous event. See :ref:`sending-data`. missed event An ``API_MissedEvent`` :term:`error event` generated when there is an unexpected skip in the :term:`server counter`. See :ref:`sending-data`. error event Event data with the ``err`` flag set to true. The event will contain an error stack with ``reason`` fields that can be used to discrimate between errors. For example, the reason field may be ``API_MissedEvent``. keep-alive mechanism Mechanism running in the :term:`event consumer` to maintain the connection to the :term:`event supplier`. See :ref:`keep-alive`. event latency The time between a event being pushed by the :term:`event supplier` and being processed by the :term:`event consumer`. Tango Resource Locator A string that can be resolved to a Tango object. See `Tango Resource Locator (TRL) `_. ZMQ socket An abstract socket provided by the `ZeroMQ `_ library. ZMQ topic A string used to filter events from the :term:`event socket` corresponding to a particular :term:`event stream`. For example, ``archive`` events for the ``foo/bar/pub/coolfactory`` attribute (with ``TANGO_HOST=localhost:10000``) could be sent over the topic ``"tango://localhost:10000/foo/bar/pub/coolfactor.idl5_archive"``.