numaflow

package module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2024 License: Apache-2.0 Imports: 2 Imported by: 0

README

Numaflow

Go Report Card slack GoDoc License Release Version CII Best Practices

Welcome to Numaflow! A Kubernetes-native, serverless platform for running scalable and reliable event-driven applications. Numaflow decouples event sources and sinks from the processing logic, allowing each component to independently auto-scale based on demand. With out-of-the-box sources and sinks, and built-in observability, developers can focus on their processing logic without worrying about event consumption, writing boilerplate code, or operational complexities. Each step of the pipeline can be written in any programming language, offering unparalleled flexibility in using the best programming language for each step and ease of using the languages you are most familiar with.

Numaflow, created by the Intuit Argo team to address community needs for continuous event processing, leverages their expertise to deliver a scalable and robust, serverless platform for event-driven applications.

Numaflow Pipeline

Use Cases

  • Event driven applications: Process events as they happen, e.g., updating inventory and sending customer notifications in e-commerce.
  • Real time analytics: Analyze data instantly, e.g., social media analytics, observability data processing.
  • Inference on streaming data: Perform real-time predictions, e.g., anomaly detection.
  • Workflows running in a streaming manner.

Key Features

  • Kubernetes-native: If you know Kubernetes, you already know how to use Numaflow.
  • Serverless: Focus on your code and let the system scale up and down based on demand.
  • Language agnostic: Use your favorite programming language.
  • Exactly-Once semantics: No input element is duplicated or lost even as pods are rescheduled or restarted.
  • Auto-scaling with back-pressure: Each vertex automatically scales from zero to whatever is needed.

Data Integrity Guarantees

  • Minimally provide at-least-once semantics
  • Provide exactly-once semantics for unbounded and near real-time data sources
  • Preserving order is not required

Roadmap

  • Mono Vertex to bypass ISB for simple use cases (1.4)

Demo

Numaflow Demo

Resources

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Version

type Version struct {
	Version      string
	BuildDate    string
	GitCommit    string
	GitTag       string
	GitTreeState string
	GoVersion    string
	Compiler     string
	Platform     string
}

Version contains version information

func GetVersion

func GetVersion() Version

GetVersion returns the version information

func (Version) String

func (v Version) String() string

String outputs the version as a string

Directories

Path Synopsis
cmd
hack
pkg
apis/numaflow/v1alpha1
+kubebuilder:object:generate=true +groupName=numaflow.numaproj.io +k8s:deepcopy-gen=package,register +k8s:openapi-gen=true
+kubebuilder:object:generate=true +groupName=numaflow.numaproj.io +k8s:deepcopy-gen=package,register +k8s:openapi-gen=true
apis/proto/daemon
Package daemon is a reverse proxy.
Package daemon is a reverse proxy.
apis/proto/mvtxdaemon
Package mvtxdaemon is a reverse proxy.
Package mvtxdaemon is a reverse proxy.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/numaflow/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/numaflow/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
daemon/client
Package client is used to create the daemon service client.
Package client is used to create the daemon service client.
daemon/server/service
Package service is built for querying metadata and to expose it over daemon service.
Package service is built for querying metadata and to expose it over daemon service.
daemon/server/service/rater
Package rater provides the functionality to calculate the processing rate of each vertex partition.
Package rater provides the functionality to calculate the processing rate of each vertex partition.
forwarder
Package forwarder defines the interfaces for data forwarders in different type of vertices.
Package forwarder defines the interfaces for data forwarders in different type of vertices.
isb
mvtxdaemon/client
Package client is used to create the MonoVertex daemon service client.
Package client is used to create the MonoVertex daemon service client.
reconciler
Package reconciler defines implementations of the Reconciler interface defined at sigs.k8s.io/controller-runtime/pkg/reconcile.Reconciler.
Package reconciler defines implementations of the Reconciler interface defined at sigs.k8s.io/controller-runtime/pkg/reconcile.Reconciler.
reconciler/monovertex/scaling
Package scaling provides the autoscaling capability for MonoVertex objects.
Package scaling provides the autoscaling capability for MonoVertex objects.
reconciler/vertex/scaling
Package scaling provides the autoscaling capability for Vertex objects.
Package scaling provides the autoscaling capability for Vertex objects.
reduce
Package reduce reads messages from isb and is responsible for the first part of reduce subsystem.
Package reduce reads messages from isb and is responsible for the first part of reduce subsystem.
reduce/pbq/partition
Package partition is a tuple containing (start, end) time and an optional slot.
Package partition is a tuple containing (start, end) time and an optional slot.
reduce/pbq/wal/aligned/fs
Package fs implements write-ahead-log on FileSystem.
Package fs implements write-ahead-log on FileSystem.
reduce/pbq/wal/unaligned/fs
Package fs implements write-ahead-log on FileSystem.
Package fs implements write-ahead-log on FileSystem.
shared/kvs/inmem
Package inmem package implements the watermark progression using in mem store as the KV store.
Package inmem package implements the watermark progression using in mem store as the KV store.
shared/kvs/jetstream
Package jetstream package implements the kv store and watcher using Jetstream.
Package jetstream package implements the kv store and watcher using Jetstream.
sideinputs
Package sideinputs is used for Side Inputs features.
Package sideinputs is used for Side Inputs features.
sideinputs/initializer
Package initializer is used for init container on the vertex pod to initialize the Side Inputs data.
Package initializer is used for init container on the vertex pod to initialize the Side Inputs data.
sideinputs/manager
Package manager is used for run the service in the numa container of a Side Inputs Manager.
Package manager is used for run the service in the numa container of a Side Inputs Manager.
sideinputs/synchronizer
Package synchronizer is used for the service in the sidecar container of a vertex pod for watching Side Inputs data changes.
Package synchronizer is used for the service in the sidecar container of a vertex pod for watching Side Inputs data changes.
sources/forward
Package forward is used for creating a data forwarder for the source vertex.
Package forward is used for creating a data forwarder for the source vertex.
sources/generator
Package generator contains an implementation of an in-memory generator that generates payloads in json format.
Package generator contains an implementation of an in-memory generator that generates payloads in json format.
sources/udsource
Package udsource implements user-defined source, enabling the platform to communicate with user-defined data sources through gRPC.
Package udsource implements user-defined source, enabling the platform to communicate with user-defined data sources through gRPC.
udf
udf/forward
Package forward is used for creating a data forwarder for the UDF vertex.
Package forward is used for creating a data forwarder for the UDF vertex.
udf/rpc
Package rpc provides the interface to invoke UDFs (map, mapstream and reduce).
Package rpc provides the interface to invoke UDFs (map, mapstream and reduce).
watermark/entity
Package entity is the smallest processor entity for which the watermark will strictly monotonically increase.
Package entity is the smallest processor entity for which the watermark will strictly monotonically increase.
watermark/wmb
Package wmb represents the offset-timeline pair and its corresponding encoder and decoder.
Package wmb represents the offset-timeline pair and its corresponding encoder and decoder.
webhook
Package webhook is used for running a validating admission webhook.
Package webhook is used for running a validating admission webhook.
window
Package window implements windowing constructs.
Package window implements windowing constructs.
window/strategy/fixed
Package fixed implements Fixed windows.
Package fixed implements Fixed windows.
window/strategy/sliding
Package sliding implements Sliding windows.
Package sliding implements Sliding windows.
Package server is used for running UX backend server.
Package server is used for running UX backend server.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL