Kafka
ibex_bluesky_core uses the bluesky-kafka library to send documents
emitted by the RunEngine to kafka. The kafka callback is automatically added by
ibex_bluesky_core.run_engine.get_run_engine, and so no user configuration is required - the callback is always
enabled.
Documents are encoded using the msgpack format - using the msgpack-numpy library
to also handle numpy arrays transparently.
The kafka broker to send to can be controlled using the IBEX_BLUESKY_CORE_KAFKA_BROKER environment variable, if
an instrument needs to override the default. The kafka topic will be <INSTRUMENT>_bluesky, where INSTRUMENT is the
instrument name with any NDX or NDH prefix stripped.
The message key will always be doc for bluesky documents; specifying a non-null key enforces message ordering.