Библиотека kstreams-ts переносит модель Kafka Streams в среду Node.js, используя клиент @platformatic/kafka. Решение обеспечивает обработку данных с гарантиями exactly-once, позволяя сохранять состояние между перезапусками консьюмеров и ребалансами.

Для хранения состояния используется локальная база данных SQLite, а записи дублируются в compacted-топик Changelog. Атомарность операций обеспечивается через Kafka-транзакции, которые фиксируют выходные данные, записи в Changelog и смещения (offsets) одновременно. Доступны как DSL-методы, так и Processor API.

Защита от «зомби-воркеров» реализована на двух уровнях: через KIP-447 на стороне брокера и путем отслеживания эпох владения задачами внутри воркера. Если эпоха задачи меняется, транзакция отменяется, что предотвращает некорректную фиксацию данных.

Автор разработал crash-тесты, которые принудительно завершают работу приложения через SIGKILL. Это позволило выявить ошибку в клиенте @platformatic/kafka, приводившую к фильтрации закоммиченных записей. Исправление бага было предложено в рамках PR #470.

Текущая бета-версия 0.1 требует Node.js 24+ и Kafka 3.6+. В библиотеке пока отсутствуют поддержка join-операций, repartition-топиков и некоторых типов окон. Совместимость с Java-версией Kafka Streams по API или форматам данных не предусмотрена.