zeek/auxil/broker/doc/index.rst
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

57 lines
1.7 KiB
ReStructuredText

Broker User Manual
==================
**Broker** is a library for type-rich publish/subscribe communication in
`Zeek <https://www.zeek.org>`_'s data model.
Outline
--------
:ref:`overview` introduces Broker's key components and basic terminology,
such as *endpoints*, *messages*, *topics*, and *data stores*.
:ref:`communication` shows how one can send and receive data with Broker's
publish/subscribe communication primitives. By structuring applications in
independent *endpoints* and peering with other endpoints, one can create a
variety of different communication topologies that perform topic-based message
routing.
:ref:`data-model` presents Broker's data model, which applications can
pack into messages and publish under given topics. The same data model
is also used by Broker's :ref:`data stores <data-stores>`.
:ref:`data-stores` introduces *data stores*, a distributed key-value
abstraction operating with the complete :ref:`data model
<data-model>`, for both keys and values. Users interact with a data
store *frontend*, which is either an authoritative *master* or a
*clone* replica. The master can choose to keep its data in various
*backends*, currently either in-memory, or persistently through
`SQLite <https://www.sqlite.org>`_, or `RocksDB
<http://rocksdb.org>`_.
:ref:`python` discusses the Broker's Python bindings, which
transparently expose all of the library's functionality to Python
scripts.
Finally, :ref:`devs` dives deep into the architecture and implementation of
Broker. This Section is meant for guiding C++ software developers that wish to
contribute to Broker.
Synopsis
--------
.. literalinclude:: _examples/synopsis.cc
.. toctree::
:numbered:
:hidden:
overview
comm
data
stores
web-socket
python
devs
glossary