Заметки по дизайну: subprocess-коннекторы
Кратко зафиксированы цели и компромиссы режима subprocess (отдельные бинарники, stdin/stdout, JSON Lines). Нормативное описание формата и команд — в протоколе на английском (основной текст) и в кратком обзоре.
Цели
- Возможность поставлять реализации коннекторов отдельными бинарниками от ядра процессора.
- Единый протокол обмена между циклом процессора и процессом коннектора.
Трансформеры
Трансформеры задуманы как лёгкие и stateless. In-process трансформеры не несут накладных расходов IPC на сообщение и используются по умолчанию. Запуск трансформеров как subprocess теоретически возможен ради расширяемости, но цена — сериализация и граница процесса на каждое сообщение.
Когда используется subprocess
При DATAFLOW_USE_SUBPROCESS_CONNECTORS=1 и обнаружении бинарника dataflow-connector-<type> (порядок поиска и handshake — в разделе протокола).
История
Расширенные внутренние черновики были сведены к connector-protocol.md и коду оператора; отдельные монолитные планы удалены, чтобы не расходиться с опубликованным протоколом.