Находки на рыбалке: FastStream! Сходили с автором половить рыбу и пожарить всякое вкусное на углях. И пока было время – говорили про программирование.
Для тех, кто еще не успел познакомиться с новинкой, рассказываю: FastStream – аналог FastAPI, но для работы с событиями в брокерах / очередях.
Пример:
from faststream import FastStream
from faststream.kafka import KafkaBroker
broker = KafkaBroker("localhost:9092")
app = FastStream(broker)
@publisher("another-topic")
@subscriber("first-topic")
async def handle(user: str) -> str:
return f"Hi, {user}!"
Что делает данный код? Читает сообщения из first-topic
, парсит из них поле user
типа str
, выполняет вашу логику обработки, отправляет новое сообщение в another-topic
. Просто? Удобно? Да!
Что нам дает такой подход?
Декларативное описание, чего мы хотим. Не надо руками создавать коннекты и рулить потоком выполнения
AsyncAPI документацию (аналог OpenAPI в вебе)
Удобное тестирование
Кучу других плюшек!
Внутри видео обсудили:
Детали работы DI фастстрима
Встроенное Observability
Open Tracing
Сообщество фреймворка (тут не будет проблемы "одного автора", сообщество живет!)
Отличия от Celery: почему интструменты совсем разные?
Репозиторий: https://github.com/ag2ai/faststream
Документация: https://faststream.ag2.ai
Обсуждение: используется ли в ваших проектах асинхронная архитектура? Как вы работаете с событиями?