System Design Space

    Глава 96

    Обновлено: 16 февраля 2026 г. в 03:00

    Kappa Architecture: stream-first альтернатива Lambda

    Прогресс части0/21

    Единый потоковый контур без отдельного batch layer: immutable log, materialized views, replay/backfill и сравнение с Lambda.

    Связанная книга

    Big Data (Nathan Marz)

    Базовая формулировка Lambda Architecture и контекст, из которого выросла Kappa.

    Открыть главу

    Kappa Architecture - это stream-first подход к обработке данных, в котором основной вычислительный контур един: события пишутся в immutable log, а все представления строятся потоковой обработкой и материализуются в целевые хранилища.

    Почему появилась Kappa

    Один контур вместо двух

    Lambda требует поддерживать два пути вычислений (batch и speed), что усложняет разработку и эксплуатацию.

    Replay как штатный механизм

    Пересчет выполняется переигровкой событий из лога тем же кодом, который обслуживает realtime.

    Stream-native платформа

    Современные стриминговые платформы позволяют строить устойчивые stateful пайплайны без отдельного batch-стека.

    Базовый поток Kappa

    Producersapps, services, CDCImmutable LogKafka / Pulsar / Redpandapartitioned event streamStream Processingenrich, join, aggregatesame code for online + replayServing DBlow-latency readsOLAP ViewanalyticsSearch/Indexspecialized queryReplay / Backfill Modeset offsets/timestampand re-run pipelineOne processing model for online and historical datano separate batch layerpublish eventsconsume streamreplay

    В Kappa нет отдельного batch layer: один и тот же stream pipeline обрабатывает и живой поток, и исторический replay.

    Lambda vs Kappa

    КритерийLambdaKappa
    Compute modelBatch + 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 на практике

    1. Сделайте event log источником истины: immutable события с versioned схемами.
    2. Перенесите ключевые materialized views в stream processing контур.
    3. Добавьте replay/backfill pipeline: переигровка событий должна быть штатной операцией.
    4. Отделите stateful processing от serving API через четкие контракты данных.
    5. Зафиксируйте 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.

    Связанные главы