Tutorial: первый сквозной поток¶
Цель — на живой шине самому провести факт через всю систему и увидеть результат. Это обучающий проход: делаешь шаги по порядку, в конце понимаешь, как устроен поток.
Что произойдёт:
ты публикуешь bridge Inngest функция bridge
transcript.ready.v1 ──IN──▶ заводит ──▶ transcript-process ──▶ /publish ──▶ transcript.processed.v1
Что понадобится¶
- Поднятый стек
bus(см. как задеплоить). - Пароль внутреннего пользователя шины
NATS_INTERNAL_PASSWORD. - Доступ к серверу (терминал Coolify) или внешний
wss-эндпойнт шины.
В примерах используем nats CLI из образа natsio/nats-box по внутренней сети
event-bus. Зададим пароль один раз:
P=<NATS_INTERNAL_PASSWORD>
N() { docker run --rm --network event-bus natsio/nats-box \
nats -s nats://nats:4222 --user internal --password "$P" "$@"; }
Шаг 1. Убедись, что стрим есть¶
Стрим TRANSCRIPT (subjects transcript.>) создаётся как код (stream-bootstrap):
N stream info TRANSCRIPT
Шаг 2. Опубликуй факт¶
N pub transcript.ready.v1 \
'{"transcriptId":"hello-1","meetingId":"m1","createdAt":"2026-01-01T00:00:00Z"}' \
-H 'traceparent:00-11111111111111111111111111111111-2222222222222222-01'
bridge-inngest забрал
его и завёл в Event API движка (с детерминированным id и тем же traceparent).
Шаг 3. Дай движку отработать (≈10–15 c)¶
Функция transcript-process сработала на событие, выполнила шаг обработки и
отправила результат в мост (/publish), а тот опубликовал новый факт.
Шаг 4. Посмотри результат¶
N stream get TRANSCRIPT --last-for transcript.processed.v1
"transcriptId":"hello-1" и summary — это и есть результат,
вернувшийся в шину как новый факт. traceparent сохранён сквозь весь путь.
Что ты узнал¶
- Факт публикуется в шину, а не вызывается напрямую — реагируют независимые участники.
- Мост — единственный клей к движку: заводит факт внутрь и публикует результат обратно.
traceparentпроходит весь цикл (его можно увидеть в Jaeger — наблюдаемость).
Дальше¶
- Добавить своего участника.
- Понять принципы — Архитектура.