Solutions · Open Source

Argus Flow

An open-source data pipeline distribution that gathers everything you need to run Apache NiFi 2.10.0 in production. Custom extension bundles (NARs), deployment packages (tar.gz, RPM, container images), a Kubernetes operator, and configuration/certificate/user-management tooling — consolidated from scattered repositories into a single monorepo so every artifact ships from one build pipeline at matching versions.

Apache License 2.0 · Open SourceApache NiFi 2.10.0 · Java 21GitHub Repository

Connect the extensions your NiFi pipelines need

Combine CDC or file listing, FlowFile processing, target writes and operational inspection.

Four-stage flow from external sources through NiFi extension processors and queues to target stores
Collect → process FlowFiles → write targets → inspect operationSelect the diagram to zoom to its original size.
1.Collect changes or file listings
Choose Debezium CDC or listing processors driven by incoming FlowFile attributes.
2.Process FlowFiles
Connect NiFi queues and record readers/writers for transformation and routing.
3.Write target systems
Write prepared records with PutIceberg, PutDeltaLake or PutDatabaseRecord.
4.Inspect operation
Use the NiFi UI, reporting tasks and flow analysis rules to inspect runtime and configuration issues.

CDC uses at-least-once delivery. Configure event-to-record transformations for the target; listing files and fetching their contents are separate steps.

View GitHub documentation and code

From distribution build to Kubernetes operation

Package extensions, configure access and TLS, then manage declared clusters and flows with the operator.

Four-stage workflow covering extension build, configuration diagnostics, Kubernetes deployment and monitoring
Build → configure → declare deployment → monitor and changeSelect the diagram to zoom to its original size.
1.Build distribution
Package official NiFi with extension NARs as tar.gz, RPM or container images.
2.Configure access
Use argus-config for addresses, TLS and login; review diffs and diagnostics.
3.Declare deployment
Specify runtime resources and Registry flow versions through NiFiCluster and NiFiFlow.
4.Monitor and change
Use health checks, reconnection, rolling restarts and offloading procedures for operational changes.

The Kubernetes configuration uses Lease-based leader election and ConfigMap state management. Rolling restarts and scale-down do not guarantee uninterrupted or lossless operation.

View GitHub documentation and code

NiFi processors and controller services

30 processors for ingestion, queries, transformation and storage, plus 8 controller services for shared connections, serialization and catalogs.

Processors30 components

Processors handle FlowFiles. CDC uses at-least-once delivery, so configure duplicate, ordering and delete handling. Listing processors require a separate Fetch processor to retrieve file contents.

ComponentCategorySupported capabilities
CaptureChangeMySQLChange data captureCaptures row changes from the MySQL binlog as JSON FlowFiles.
CaptureChangePostgreSQLChange data captureCaptures PostgreSQL row changes through logical replication using pgoutput or decoderbufs.
CaptureChangeOracleChange data captureCaptures Oracle row changes through LogMiner, with CDB/PDB connection settings.
CaptureChangeSQLServerChange data captureReads row changes from SQL Server CDC tables and emits JSON FlowFiles.
ExecuteSQLDatabaseStreams SELECT results to Avro; supports bound parameters, schedules and incoming FlowFile triggers.
ExecuteSQLRecordDatabaseStreams SELECT results through a configurable Record Writer, with bound query parameters.
ExecuteFastSQLDatabaseFetches SQL results with multiple threads and writes CSV; encodes binary values as Base64 and CLOBs as text.
PutDatabaseRecordDatabaseConverts records into SQL operations such as INSERT, UPDATE and DELETE, with transactions and success/retry/failure routing.
BulkOracleInsertProcessorDatabaseLoads records using parameterized Oracle INSERT ALL statements, with configurable batch size and query timeout.
ListS3File listingLists S3 objects using incoming attributes for bucket/prefix; emits one FlowFile per object for FetchS3Object.
ListHDFSFile listingLists an HDFS directory with attribute-driven paths and filters; passes file path attributes to FetchHDFS.
ListFileFile listingLists local or mounted paths under an allowed base directory on the processing node; pairs with FetchFile.
ListSFTPFile listingUses incoming attributes to select an SFTP endpoint and remote path; emits file listings for FetchSFTP.
ListFTPFile listingUses incoming attributes to select an FTP endpoint and remote path; emits file listings for FetchFTP.
QueryTrinoRecordTrino queries & maintenanceStreams Trino SELECT results through a Record Writer with row-count splitting; records query IDs/statistics and cancels queries on stop.
ExecuteTrinoStatementTrino queries & maintenanceExecutes one DDL/DML/ELT statement such as CTAS, INSERT SELECT or MERGE; supports synchronous/background and input-free scheduled runs.
MaintainTrinoTableTrino queries & maintenanceRuns Iceberg OPTIMIZE/snapshot expiry/orphan cleanup, Delta Lake OPTIMIZE/VACUUM, Hive partition synchronization, and ANALYZE for all three.
PutIcebergLakehouse ingestionAppends records to an existing Iceberg table using a Record Reader and catalog service; requires a compatible schema and separate CDC update/delete handling.
PutDeltaLakeLakehouse ingestionUses Delta Kernel to append Parquet files and commit the log of a path-based table; creates missing tables, with primitive types and file/HDFS as the baseline.
PutKuduLakehouse ingestionWrites records to Kudu with configurable operation, batching and flush mode; supports per-column timestamp formats and hour offsets.
SelectHive3QLHive integrationStreams HiveQL SELECT results as Avro or CSV, with scheduling, input triggers and a result row-count attribute.
PutHive3QLHive integrationExecutes HiveQL DDL/DML from FlowFile content, binding placeholders through hiveql.args attributes.
PutHive3StreamingHive integrationLoads records through the Hive 3 Streaming API using static partition values or partition fields in records.
UpdateHive3TableHive integrationCreates a missing Hive table or adds columns/partitions to match the input schema before loading data.
TriggerHiveMetaStoreEventHive integrationTriggers Hive Metastore notifications from input paths and put/delete event attributes; requires a notification listener.
PutORCFile formatsReads records through a Record Reader and writes ORC files to the configured filesystem location.
PutParquetFile formatsWrites records as Parquet using the configured schema, renaming the temporary file after a successful write.
MergeParquetFile formatsMerges Parquet files from HDFS and reports the output path; can retain or delete source files after committing the merge.
MultilineCsvParserTransformation & commandsStreams CSV with multiline fields, configurable delimiters/encoding/quotes/headers/column counts, and failure routing for invalid input.
PrePostExecuteStreamCommandTransformation & commandsPasses FlowFile content to an external command and supports commands executed before and after it.

Controller services8 components

Controller services share connection, reader, writer and catalog configuration across processors. Names match the actual components selected in NiFi.

ComponentCategorySupported capabilities
CSVReaderRecord readers & writersReads CSV rows as records using header-based schema inference or an explicit schema, with configurable timestamp formats.
TimestampFormatAvroRecordSetWriterRecord readers & writersWrites binary Avro with schema-property timestamp formats, hour offsets and compression settings.
TimestampFormatParquetRecordSetWriterRecord readers & writersWrites Parquet with schema-property timestamp formats, hour offsets and selectable INT96 fields.
Hive3ConnectionPoolDatabase connectionsPools Hive 3 JDBC connections for Hive processors, with Kerberos integration.
VendorHive3ConnectionPoolDatabase connectionsPools connections through an external vendor Hive JDBC driver, with service-specific driver locations and Kerberos; supply the driver JAR separately.
HiveCatalogServiceIceberg catalogsConnects to Hive Metastore to manage Iceberg table metadata and serves as a catalog for PutIceberg.
HadoopCatalogServiceIceberg catalogsProvides a filesystem-based Iceberg catalog for HDFS or similar filesystems supporting atomic rename.
StandardTrinoConnectionServiceDatabase connectionsProvides unpooled Trino JDBC connections compatible with DBCPService; supports NONE/PASSWORD/JWT/Kerberos/OAuth2, session properties and external driver JARs.

PostgreSQL CDC as a concrete NiFi flow

Connect logical replication to JSON events, destination-specific transformations and recovery.

CDC diagram connecting CaptureChangePostgreSQL local offsets and JSON events to configured transformations and PutDatabaseRecord or PutIceberg
Capture changes → inspect events → shape destination writes → retry and recoverSelect the diagram to zoom to its original size.
1.Configure logical replication
Prepare permissions, slot and publication, then configure CaptureChangePostgreSQL and persistent local offsets.
2.Inspect events
Check before, after, op and FlowFile attributes such as cdc.key.
3.Apply target semantics
Separate current-state UPSERT/DELETE handling from append-only change history.
4.Plan recovery
Configure destination failure/retry queues and deduplication for replayed events.

CDC documentation specifies at-least-once delivery. Deduplication, ordering and delete handling need explicit configuration. PutIceberg append writes do not automatically merge, update or delete CDC rows.

View GitHub documentation and code

Deployment, security, operational checks and editions

Review the public distribution’s operational capabilities alongside Enterprise support and services.

Diagram of Argus Flow packaging and Kubernetes operation, configuration and DB authentication, reporting tasks, flow rules and edition comparison
Build deployment → configure access → inspect operations → choose supportSelect the diagram to zoom to its original size.
1.Assemble deployment
Package 13 bundles and 21 NARs; Kubernetes uses Lease election and ConfigMap state.
2.Configure access
Diagnose address, TLS and login settings; optionally enable database authentication and authorization.
3.Inspect operation
Use five reporting tasks and six static rules to check runtime and flow configuration.
4.Choose support
Select self-operated Community or Enterprise SLA, migration and custom development services.

Extensions, packaging, operator and tooling are public Community capabilities. Enterprise adds SLA support and professional services; vendor drivers are separately supplied. Rolling restarts and scale-down do not guarantee uninterrupted or lossless operation.

View GitHub documentation and code
Apache License 2.0 · Open Source

A NiFi production distribution released as open source

Argus Flow is published on GitHub under the Apache License 2.0. Extension bundle sources, distribution packaging, the Kubernetes operator, and the operations tooling are all open, so enterprises can audit the code, extend it for their own environment, and run it entirely on their own — even in air-gapped networks.

  • Apache 2.0 with no commercial-use restrictions
  • Upstream attribution and license headers verified in the build
  • Self-operated on-premises or air-gapped