Nussknacker allows domain experts to define decision algorithms in the most natural way. Instead of sets of interdependent rules or SQL statements, they work with easy-to-follow and understand flow diagrams.
Product
rapid decision logic deployment
built with domain experts in mind
simply express the decision logic
for logical conditions, calculations and other expressions that complement the diagrams there's a powerful expression language. It's based on SpEL (Spring Expression Language) and supports advanced querying and manipulation of data.
to make writing those expressions easier, Nussknacker integrates with various metadata sources, to automatically discover the structure of input and output data. This information is utilized by advanced contextual expression suggestions, autocompletion and validation mechanism.
enrich the data, enhance the decisions
the data in the event that triggers a decision is often not enough to make the decision. Nussknacker can enrich it with information from various sources: private and public APIs, databases and machine learning models.
that doesn't mean domain experts have to worry about addresses, credentials etc. They can focus on business logic because Nussknacker hides all of the technical details under the hood. And, no matter the enrichment source, Nussknacker, as always, helps users by using available metadata to provide automatic suggestions and validation.
test before you deploy, monitor the results
Nussknacker wants users to feel safe and confident about the changes they make. That's why it provides different testing and debugging mechanisms.
You can test on data recorded from a live environment or provide your own test cases. You can also monitor execution paths of a running scenario for debugging purposes.
And if you need more technical details, Nussknacker makes numerous metrics available on a Grafana® dashboard out of the box. You can easily check scenario throughput, statistics about decisions made, errors and more.
deploy anytime, all the time
Nussknacker encourages iterative improvements of decision algorithms. Once created or modified, decision scenarios are deployed for execution with a click of a button. And you can always revert to an older version or compare different versions of a scenario, thanks to full version history.
built for rapid ML inference
combine ML with algorithms
Nussknacker seamlessly integrates machine learning with traditional decision algorithms.
When using ML models in decision scenarios, you get input data transformations, suggestions and validation, testing, one-click deployment and all the other advantages of Nu's low-code interface.
When data scientists build their models, they don't have to worry about serving them. They work in familiar technologies - scikit-learn, PyTorch, TensorFlow, and many more, provide the models and Nussknacker takes care of the rest, using its own ML runtime.
built with flexibility in mind
fits your architecture
From an architectural point of view, Nussknacker is a decision service. So we had to make it fit various event driven architectures, streaming and request-response.
In streaming use cases Nussknacker can connect directly to any Kafka-compatible streaming platform. Or, if you don't want to use Kafka, Nussknacker also has an HTTP interface with a subscription mechanism that can receive input streams and send output streams over HTTP.
For synchronous, request-response use cases Nussknacker creates an OpenAPI service for every decision scenario.
And whatever the source of input data, Nussknacker can enrich it with information from:
- any REST endpoint with an OpenAPI definition
- any database available via JDBC
- by inferring ML models prepared in one of the popular technologies such as Scikit-learn, PyTorch, TensorFlow, ONNX, PMML or as a custom Python function
as straightforward or as sophisticated as you need
there are two engines available in Nussknacker, that focus on different needs:
Lightweight Kubernetes-native engine if you want to deploy Nussknacker simply as just another service on your platform
Flink engine if your business logic requires data aggregation or other ways of stateful stream processing
no matter which engine you choose, you always get enterprise grade performance: horizontal scalability, high availability, high throughput and low latency.
fits your domain
Nussknacker adapts to any domain. It uses names specific to your domain based on a schema registry, OpenAPI definitions or SQL tables metadata and can be further customised with various configuration options.
And when customisation is not enough, Nussknacker can be extended to fit a specific use case. You can use our enterprise components or build your own, taking advantage of Nussknacker's extensions API.
manage it yourself or let us do it
Nussknacker is open source. You can run it anywhere and any way you want. You only need Kubernetes or Flink (for stateful stream processing). And if you need support, we've got you covered.
But if you don't want to manage Nussknacker yourself, use our fully managed Nussknacker Cloud. You can connect to it over HTTP or set it up to work with your own Kafka-compatible service in the cloud, like Confluent Cloud, Aiven, Azure Event Hubs, Redpanda or on premises
offer
Cloud, support, customisation.
See what we can do to help you get the most out of Nussknacker.
from the Nu Blog
Nussknacker application in Data Lakehouse architecture: Apache Iceberg example
Nussknacker now supports Flink catalogs. This means you can use it with Apache Iceberg for tasks like data ingestion, transformation, aggregation, enrichment, and creating business logic. This blog post will show you how to use Nussknacker and Apache Iceberg together for a real-world example
ML models inference in fraud detection
How to simplify the integration of ML models into business applications, automate many of the technical complexities, and support advanced techniques like A/B testing and ensemble models. A fraud detection example
Next Best Action recommendation management simplified
Business scenarios can become increasingly complex, causing many problems for users and administrators. Read how we tackle the problem in the Request Response processing example