Skip to content

Заметки по дизайну: subprocess-коннекторы

Кратко зафиксированы цели и компромиссы режима subprocess (отдельные бинарники, stdin/stdout, JSON Lines). Нормативное описание формата и команд — в протоколе на английском (основной текст) и в кратком обзоре.

Цели

  • Возможность поставлять реализации коннекторов отдельными бинарниками от ядра процессора.
  • Единый протокол обмена между циклом процессора и процессом коннектора.

Трансформеры

Трансформеры задуманы как лёгкие и stateless. In-process трансформеры не несут накладных расходов IPC на сообщение и используются по умолчанию. Запуск трансформеров как subprocess теоретически возможен ради расширяемости, но цена — сериализация и граница процесса на каждое сообщение.

Когда используется subprocess

При DATAFLOW_USE_SUBPROCESS_CONNECTORS=1 и обнаружении бинарника dataflow-connector-<type> (порядок поиска и handshake — в разделе протокола).

История

Расширенные внутренние черновики были сведены к connector-protocol.md и коду оператора; отдельные монолитные планы удалены, чтобы не расходиться с опубликованным протоколом.