Comparisons
Pairs that get conflated in real conversations. Neither column wins — what decides is the requirement, and each record leads with the confusion, because the confusion is the reason the record exists at all.
OLTP vs OLAPBatch vs StreamingETL vs ELTParquet vs AvroLake vs Warehouse vs LakehouseCDC vs PollingEvent modelling vs Snapshot modellingFull refresh vs IncrementalLambda vs KappaOrder grain vs Order-line grain
Lambda vs Kappa
What people get wrong about this pair
Kappa is presented as the simpler successor. It removes the duplicate implementation and replaces it with a demand that the log retain everything you might ever need to reprocess, and that the stream job be able to reprocess history at a rate batch used to.
Lambda
Use it when
You have an existing batch platform that is correct, and a streaming path is being added for freshness without betting the correctness on it.
Kappa
Use it when
One stream processing path, with replay used for reprocessing, and no second implementation to keep in agreement.
| Dimension | Lambda | Kappa |
|---|---|---|
| Implementations of the logic | Two — batch and speed — which must agree | One |
| Reprocessing | The batch layer does it, as it always did | Replay the log through the same job |
| What it demands of the log | Little; the batch layer owns history | Retention long enough to rebuild anything |
| Where it goes wrong | The two paths drift and produce different numbers | A replay of a year through a streaming job is not a small operation |