Вчера в Github зажглась новая звезда – faust. Это такой крутой способ писать event-driven пайплайны. Задаете формат сообщений (Record), задаете обработчики (agent), и готово. Всё это распределенное, асинхронное, с очередями. А главное, максимально простое. В качестве брокера выступает Kafka, в качестве базы для хранения состояний – RocksDB. Асинхронность можно делать как на asyncio, так и через asyncio, uvloop, gevent или eventlet. Я ещё не успел испытать это в бою, но выглядит как действительно что-то крутое. По сути, так можно практически все процессы построить на таких вот асинхронных распределенных событийно-ориентированных пайплайнах, и всё будет читаемое, масштабируемое, легко заменяемое. Огонь!