  In this work we present kiwiPy, a Python library designed to support robust
message based communication for high-throughput, big-data, applications while
being general enough to be useful wherever high-volumes of messages need to be
communicated in a predictable manner. KiwiPy relies on the RabbitMQ protocol,
an industry standard message broker, while providing a simple and intuitive
interface that can be used in both multithreaded and coroutine based
applications. To demonstrate some of kiwiPy's functionality we give examples
from AiiDA, a high-throughput simulation platform, where kiwiPy is used as a
key component of the workflow engine.
