Связанная книга
Big Data (Nathan Marz)
Базовая формулировка Lambda Architecture и контекст, из которого выросла Kappa.
Kappa Architecture - это stream-first подход к обработке данных, в котором основной вычислительный контур един: события пишутся в immutable log, а все представления строятся потоковой обработкой и материализуются в целевые хранилища.
Почему появилась Kappa
Один контур вместо двух
Lambda требует поддерживать два пути вычислений (batch и speed), что усложняет разработку и эксплуатацию.
Replay как штатный механизм
Пересчет выполняется переигровкой событий из лога тем же кодом, который обслуживает realtime.
Stream-native платформа
Современные стриминговые платформы позволяют строить устойчивые stateful пайплайны без отдельного batch-стека.
Базовый поток Kappa
В Kappa нет отдельного batch layer: один и тот же stream pipeline обрабатывает и живой поток, и исторический replay.
Lambda vs Kappa
| Критерий | Lambda | Kappa |
|---|---|---|
| Compute model | Batch + Speed + Serving layers. | Single stream pipeline + materialized views. |
| Code paths | Два отдельных контура вычислений (batch и realtime). | Один контур обработки для online и replay сценариев. |
| Reprocessing | Часто через batch-recompute всего датасета. | Replay из immutable log через тот же stream pipeline. |
| Latency | Низкая через speed layer + eventual merge с batch. | Низкая, если stream processor и state store справляются с нагрузкой. |
| Operational complexity | Выше из-за двух стеков и согласования семантики. | Ниже по количеству контуров, но выше требования к stream stack. |
| Best fit | Когда batch/ETL и stream миры уже сильны и разделены. | Когда платформа строится вокруг событийного лога (Kafka/Pulsar). |
Как внедряют Kappa на практике
- Сделайте event log источником истины: immutable события с versioned схемами.
- Перенесите ключевые materialized views в stream processing контур.
- Добавьте replay/backfill pipeline: переигровка событий должна быть штатной операцией.
- Отделите stateful processing от serving API через четкие контракты данных.
- Зафиксируйте SLA по late events, ordering и exactly-once/at-least-once семантике.
Когда выбирать и на что смотреть
Kappa подходит, если
- Основные доменные данные уже генерируются как события.
- Нужна единая логика для realtime и для исторического пересчета.
- Команда готова эксплуатировать stream-first стек и stateful processors.
Зоны риска
- Некачественные event-схемы и отсутствие schema governance.
- Слишком тяжелые join/window вычисления без контроля state size.
- Недооценка стоимости replay: CPU, storage I/O, backpressure.
