---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/flow/about.md
  - https://ytsaurus.tech/docs/ru/flow/about.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

<!-- source: ru/_includes/flow/about.md -->
# Что такое YTsaurus Flow?

YTsaurus Flow &mdash; это фреймворк для потоковой кросс-ДЦ обработки событий с гарантиями exactly-once в рамках экосистемы YTsaurus с API для [C++](https://ytsaurus.tech/docs/ru/flow/cpp/getting-started.md), [Java и Kotlin](https://ytsaurus.tech/docs/ru/flow/java/getting-started.md), [Python](https://ytsaurus.tech/docs/ru/flow/python/getting-started.md), [Go](https://ytsaurus.tech/docs/ru/flow/go/getting-started.md), а также поддержкой декларативного описания пайплайнов на [YQL](https://ytsaurus.tech/docs/ru/flow/yql/getting-started.md).

Ближайшими внешними аналогами являются [Google Cloud Dataflow](https://cloud.google.com/products/dataflow?skip_cache=true%22%22) и [Apache Flink](https://flink.apache.org/).

Система находится в активной разработке, однако на её основе построили свои продакшн процессы более десяти команд. Система точно умеет:

- Справляться с нагрузкой свыше 100&nbsp;ГБ/с или 1 млн событий в секунду.
- Поддерживать 150+ логических узлов пайплайна.

## Контакты {#contact}

При любых сложностях с YTsaurus Flow создавайте [GitHub Issues](https://github.com/ytsaurus/ytsaurus/issues).

## Свойства системы {#properties}

<!-- Поддерживаемый порядок свойств: продуктово-значимые, технические гарантии, инфраструктурные. -->

- Нативная поддержка многоэтапных [пайплайнов](https://ytsaurus.tech/docs/ru/flow/concepts/glossary.md#pipeline). Как следствие &mdash; более простой деплой и управление системой.
- Поддержка [вотермарков](https://ytsaurus.tech/docs/ru/flow/concepts/watermarks.md) и [таймеров](https://ytsaurus.tech/docs/ru/flow/concepts/timers.md).
- [Exactly-once семантика](https://ytsaurus.tech/docs/ru/flow/concepts/guarantees.md) обработки событий по умолчанию.
- Характерная задержка обработки событий при стабильной работе: 1с &mdash; 10с.
- Автоматическая балансировка [партиций](https://ytsaurus.tech/docs/ru/flow/concepts/glossary.md#partition) по машинам.
- Отказоустойчивость: пайплайн переживает выпадение отдельных машин и датацентров.
- Возможность реализации бизнес-логики на [C++](https://ytsaurus.tech/docs/ru/flow/cpp/getting-started.md), [Java и Kotlin](https://ytsaurus.tech/docs/ru/flow/java/getting-started.md), [Python](https://ytsaurus.tech/docs/ru/flow/python/getting-started.md), [Go](https://ytsaurus.tech/docs/ru/flow/go/getting-started.md) и [YQL](https://ytsaurus.tech/docs/ru/flow/yql/getting-started.md).
- Поддержка [stateful-обработки](https://ytsaurus.tech/docs/ru/flow/concepts/stateful.md) с персистентным состоянием в динамических таблицах YTsaurus.
- Поддержка запуска и в YTsaurus.

<!-- source: ru/_includes/flow/language-choice.md -->
## Выбор языка {#choose-language}

Flow поддерживает несколько языков для реализации бизнес-логики:

- **[C++](https://ytsaurus.tech/docs/ru/flow/cpp/getting-started.md)** — нативная реализация, максимальная производительность, полный контроль. Рекомендуется для высоконагруженных пайплайнов.
- **[Java и Kotlin](https://ytsaurus.tech/docs/ru/flow/java/getting-started.md)** — работают через механизм [компаньонов](https://ytsaurus.tech/docs/ru/flow/concepts/companion.md). Поддерживают Spring Boot. Подходят для команд с JVM-стеком.
- **[Python](https://ytsaurus.tech/docs/ru/flow/python/getting-started.md)** — работает через механизм [компаньонов](https://ytsaurus.tech/docs/ru/flow/concepts/companion.md). Самый простой способ создать прототип пайплайна или обрабатывать небольшой поток данных.
- **[Go](https://ytsaurus.tech/docs/ru/flow/go/getting-started.md)** — работает через механизм [компаньонов](https://ytsaurus.tech/docs/ru/flow/concepts/companion.md). Один бинарь одновременно запускает пайплайн и работает компаньоном в джобе. Подходит для команд с Go-стеком.
- **[YQL](https://ytsaurus.tech/docs/ru/flow/yql/getting-started.md)** — декларативное описание пайплайна в виде SQL-запроса. Минимальный порог входа, не требует написания кода на C++, Java, Kotlin, Go или Python. Находится в активной разработке, ещё не вся запланированная функциональность доступна.
<!-- endsource: ru/_includes/flow/language-choice.md -->

## Целевые свойства системы {#target-properties}

- Умное планирование всего пайплайна целиком, с учётом CPU/RAM потребления как отдельных узлов пайплайнов, так и с учётом существования разделяемых между несколькими узлами ресурсов (общие кеши, базы и т. п.).
- Возможность запуска пайплайнов на кластерах в тысячи нод и более.
- Минимальные даунтаймы при выпадении нод, ДЦ, кластеров, а также при обновлениях.

## См. также {#see-also}

- [С чего начать](https://ytsaurus.tech/docs/ru/flow/start.md)
- [Быстрый старт](https://ytsaurus.tech/docs/ru/flow/quickstart.md)
- [Основные понятия](https://ytsaurus.tech/docs/ru/flow/concepts/glossary.md)
- [Примеры задач](https://ytsaurus.tech/docs/ru/flow/tasks.md)
- [Релизы Flow](https://github.com/ytsaurus/ytsaurus/releases?q=tag%3Aflow%2F0&expanded=true)
<!-- endsource: ru/_includes/flow/about.md -->
