Skip to main content

Engines

Nussknacker has two main components: the Designer is used to define a scenario. After deployment, the Engine is invoked as an operational component. Currently, there are two engines available: Flink and Lite. Designer can work with both of them interchangeably.

The first criterion for choosing an engine is Processing mode - Request-Response mode is supported only by Lite engine.

For Streaming, the choice is more complex. If you want to use stateful stream processing *) - you should pick Flink. On the other hand, the maintenance of a Flink cluster can be painful and requires a lot of hardware resources, which can be costly. If you want to avoid that, you should pick Lite engine. It delivers most of Nussknacker's features, but at the same time offers cheap and light setup. It requires a Kubernetes cluster to run scenarios.

  • You need to implement decision algorithms, even highly branched
  • Your business logic requires data aggregation, joins or other ways of stateful stream processing
  • You want to match against event patterns
  • You have already running Flink cluster

When Lite?

  • You need to implement decision algorithms, even highly branched
  • You want to invoke your scenarios not only running over streams, but also using request-response approach
  • Lightweight infrastructure is important for you
  • You have already running K8 cluster

Features comparison

Flink EngineLite Engine
real-time streaming✔️✔️
request-response processing✔️
scalable processing (both horizontally/vertically)✔️✔️
high availability✔️✔️
high throughput✔️✔️
low latency✔️✔️
resilience✔️✔️
metrics✔️✔️
stateful processing✔️
ease of operationsmediumeasy
environment setup difficultymediumeasy

*) Refer to this page to understand what is meant by stateful stream processing. Aggregates in time windows are a good example of stateful stream processing