Apache NiFi upgrades and support

Apache NiFi upgrades and support keep a self-hosted NiFi 2 cluster current after go-live, through minor releases, rolling cluster upgrades, deprecated component checks and rebuilt custom processors. This page explains what the work covers, what drives its cost, and when a partner makes sense.

On this page

Apache NiFi upgrades and support: who keeps NiFi 2 current after go-live

The service covers planned minor upgrades within the NiFi 2 line, security and dependency patching, rebuilds of custom processors and NARs against each target release, and a written support scope that names the versions, environments and response paths included. Most teams keep routine patching in-house once they have a tested runbook, and bring in a partner for the first few upgrades or for changes that carry more risk, such as a Java runtime change or a flow that depends on a deprecated component. If your NiFi 2 cluster is already in production, the upgrade cadence is now your responsibility, and this page assumes that starting point.

Five triggers usually start an upgrade cycle: a new minor release in the 2.x line, a change to the Java runtime (the NiFi administration guide lists Java 21 as the minimum), a deprecated component that your flows still use, a security finding against NiFi or one of its dependencies, and a new team member who must learn the upgrade path. Each trigger should create a ticket with a named owner and a target version. Read the release notes for every version between your current build and the target, because a minor release can change component behavior as well as add features. Confirm the exact steps for the target version in the official documentation before you schedule the work.

If any cluster still runs NiFi 1.x, make moving off it the first item in the plan. NiFi 1.28 is the last minor release of the 1.x series, and the downloads page lists December 8, 2024 as the end-of-support date for 1.28.1. The project explains that 1.x cannot be maintained further because it depends on Jetty 9.4, Spring Framework 5.3 and AngularJS 1.8, which cannot be upgraded within that line. The migration itself is covered in its own section of this pillar, so this page assumes a 2.x starting point. Ask any provider to confirm your exact 2.x version and whether the support scope names it.

A support agreement should state which NiFi versions, Java runtimes, custom NARs and Python processor setups are in scope. The Python-based processors are documented as a beta feature, so confirm whether they are covered at all. The agreement should also say who performs rolling cluster upgrades, which staging environment is used, how rollback works if a node fails to rejoin, and what response times apply. Ask whether the fee covers a fixed number of upgrades or ongoing patching, and whether custom processor rebuilds are included. Ongoing support, upgrades and continuous testing are available as retainers, so ask the provider to separate recurring retainer fees from the one-time cost of the first upgrade through a new runbook.

What an Apache NiFi upgrade and support engagement includes

An upgrade and support engagement moves a running NiFi 2 estate from one release to the next without losing flows, controller services or custom components. The cards below set out each work package, what it produces, and what the client must provide so the work can start and finish on schedule.

Upgrade planning and release review

We review the target NiFi release notes, the fixed issues and the components affected against your running flows and extensions. The output is a written upgrade runbook and a change record that name the versions in scope, the order of steps, the owners of each step and the go or no-go criteria. Check that the plan names the exact source and target versions and the Java runtime each node will use.

Test environment upgrade

The upgrade is first applied to a non-production cluster that mirrors production topology, security configuration and repository layout as closely as your environment allows. The deliverable is a tested build record and a list of defects found, with each one marked as fixed, accepted or blocking. Confirm that the test cluster holds representative flow definitions and parameter contexts, not only a sample of them.

Rolling cluster upgrade with rollback plan

Nodes are upgraded one at a time so the cluster keeps serving flows while each node is replaced or restarted. Each step has a documented rollback path, including repository and configuration backups taken before the change window opens. The deliverable is the executed change record and a rollback plan signed off before work begins. Confirm the coordination method (ZooKeeper or Kubernetes) and how node health is checked between steps.

Post-upgrade verification of flows and controller services

After the upgrade, every process group is checked for valid status, controller services are confirmed enabled, and sample data is traced end to end through representative paths. The deliverable is a verification checklist with results for each flow group and a list of any bulletins that remain open. Ask for the agreed list of critical flows so verification focuses on the paths that matter to your business.

Custom processor and NAR rebuilds

Custom processors and controller services are rebuilt against the target NiFi API, because NARs compiled for one release are not assumed to load in another. The deliverable is rebuilt NAR artifacts, a build record that ties each artifact to its source revision, and test results for each component. Confirm that the source repositories, build tooling and any Python processor dependencies are available to the team before the window.

Deprecated component review

The flows are scanned for deprecated processors, properties and services, and for components whose behavior changed between releases. The deliverable is a register listing each affected component, its replacement or remediation, and the owner who approves the change. Confirm which deprecated items your estate actually uses, since the list often differs from what teams expect.

Support window or retainer

Ongoing support covers release monitoring, patch assessment, scheduled upgrades and responses within a defined window. Coverage, response expectations, exclusions and the reporting cadence are agreed in writing before work starts. Most engagements are fixed-scope, and ongoing support is available as a retainer. Ask for the written coverage terms and the change process for out-of-hours incidents.

Client inputs and named owner

The client provides access to non-production and production clusters, the current flow definitions, the sources of custom NARs, and agreed change windows. A named owner on your side approves scope changes, signs off test results and makes go or no-go decisions. Confirm before kickoff who holds each access right and who can authorize a rollback during a change window.

What drives the cost and duration of an upgrade or support plan

This table lists the factors that most change the effort of a NiFi upgrade or support agreement, why each one matters and how to keep it under control. Use it to see which parts of your environment will set the scope before you ask for a fixed-scope quote. The main takeaway is that custom code, authentication, and the distance to the target version usually matter more than node count alone.

DriverWhy it mattersHow to keep it down
Cluster topologyStandalone, ZooKeeper-coordinated (embedded or external) and Kubernetes deployments each need a different rolling upgrade sequence and different checks on state and leader election.Document the current topology and state coordination method, and standardize on one pattern before the upgrade is scoped.
Node countMore nodes mean more rolling restarts, more repository checks and more time to confirm each node rejoins the cluster cleanly.Use a non-production cluster of matching shape for rehearsals, and confirm the node count in writing before scoping.
Number and complexity of flowsEach flow needs review for removed or renamed components, and complex flows with many branches or scripted logic take longer to test.Inventory flows by process group, retire unused flows, and prioritize the business-critical ones for testing.
Custom processors and controller servicesCustom NARs built against NiFi 1.x APIs may need source changes, rebuilds and retesting before they load on NiFi 2.List every custom component with its owner and source repository, and remove components that no flow uses.
Python-based processorsThe NiFi administration guide describes Python-based processors as a beta feature, and they require Python 3.10, 3.11 or 3.12, which adds version and dependency checks.Confirm whether any flow depends on Python processors and pin the supported Python version in the target environment.
Authentication setupSingle-user, LDAP, OpenID Connect, SAML 2.0 and X.509 client certificate setups each need their own configuration review, and moving off the deprecated Kerberos provider is a separate change.Record the current provider and group mappings, and keep identity changes out of the same change window as the version upgrade where possible.
Number of environmentsEach environment such as development, test and production needs its own upgrade pass, and promotion between them must keep parameter contexts consistent.Upgrade lower environments first, and use the same runbook and parameter context set for each one.
flow.json.gz and parameter contextsMoving from flow.xml.gz to flow.json.gz is required for 2.x, and parameter contexts and environment variable scope changed, so each context needs review.Export and back up the current flow configuration, then compare parameter contexts against the 2.x expression language scope changes.
Version distance to targetStarting from an early 2.x release means more release-to-release changes to review than starting from a recent one. The migration guidance also requires 1.27.0 as a stepping stone for 1.x sources, so older starting points add steps.Confirm the current version and the target release (for example, 2.12.0) and check the release notes for each intermediate version in between.
Change window constraintsRolling upgrades need enough maintenance time for each node to stop, upgrade, restart and rejoin, and blackout periods can force a split schedule.Agree the window length and rollback criteria in writing, and rehearse the full rolling sequence in a non-production environment.
Compliance evidence requirementsAssessors may ask for change records, test results, configuration baselines and access reviews tied to each upgrade, and collecting these adds effort.Ask for the evidence list before work starts, and have change tickets and test records produced as part of the normal runbook.

How an Apache NiFi upgrade runs, phase by phase

This sequence moves a running NiFi cluster to a newer release without changing the flows it runs or losing the data they carry. Each phase ends with a written output that the next phase depends on, so you can see what changed, what was tested and how to reverse it.

  1. Baseline and inventory the running cluster

    DeployOpen records the current NiFi version, Java runtime, node count, cluster coordination method (ZooKeeper or Kubernetes), repository layout and storage, flow definitions, controller services, custom NARs, and the authentication method in use. Your platform team confirms access to the nodes, the flow configuration and the repositories. The output is a baseline inventory signed off by your team, which becomes the reference for every later check. Anything that cannot be explained at this stage, such as an undocumented custom NAR or an unexpected loopback-only binding, is raised before planning continues.

  2. Review release notes and deprecated components

    Compare the running version against the NiFi downloads page and the migration guidance to choose a target release. The current 2.x line includes 2.12.0, released September 13, 2026, according to the downloads page, but the target should be chosen from the release notes for the version that fits your flows and dependencies. Check each component in the inventory against deprecation notices, including the Kerberos authentication provider and NiFi Registry, which the downloads page lists as deprecated and planned for removal in NiFi 3.0. The output is a target version and a compatibility list with an owner and an action for each item.

  3. Rehearse the upgrade in a non-production cluster

    Build a non-production cluster from a copy of the flow definitions and sanitized data, matching the production node count, Java runtime and authentication setup as closely as your environment allows. Run the upgrade on that cluster using the same steps planned for production, and record every error, bulletin and manual intervention. Custom NARs are rebuilt and tested against the target release at this stage. Sensitive values are handled according to your data policy, and the copy stays inside your environment. The output is a rehearsal log and a corrected runbook that reflects what actually happened.

  4. Upgrade production nodes one at a time

    Upgrade production nodes in a rolling sequence, one node at a time, and check cluster health before moving to the next node. Each check confirms that the node has rejoined the cluster, that its connections are draining, that the flow is running on that node, and that no new error bulletins appear. If a check fails, the sequence stops and the rollback procedure from the rehearsal is applied before work continues. The output is a timestamped record of each node's version change and health check result, and a cluster that reports every node on the target version.

  5. Verify flow behavior, provenance and monitoring

    Confirm that data moves through the flows as it did before the upgrade. Compare throughput, queue depths and processor errors against the baseline, check that provenance events are recorded and searchable, and confirm that bulletins and monitoring dashboards show the expected data. Controller services and parameter contexts are checked for correct values after restart. Run the acceptance test cases agreed during planning with the flow owners. The output is a signed verification report listing each test, its result and any open issues with named owners.

  6. Hand over the runbook, rollback and support schedule

    Deliver the operational runbook, the rollback procedure tested during the rehearsal, and the post-upgrade configuration record to your operations team. The handover session walks operators through the upgrade steps, health checks and escalation path. The support schedule states who monitors the cluster after the change, how patches and later minor releases are assessed, and how the next upgrade is planned. Whether ongoing support is covered by a retainer or handled by your team is agreed in writing. The output is an accepted handover package with a named owner for each operational task.

How rolling cluster upgrades avoid a full outage, and where they still fail

A rolling cluster upgrade avoids a full outage by changing one node at a time while the others keep processing flows. The operator stops one node, lets the remaining nodes take over its workload, replaces the NiFi binaries, and starts the node again so it can rejoin the cluster and sync the current flow. The next node follows only after the first one is healthy. Coordination is what makes this work. In a ZooKeeper-based cluster, ZooKeeper tracks which nodes are alive and which node is elected as the cluster coordinator and primary node. On Kubernetes, the same role is played by state and leader election held in ConfigMaps or Leases. If your team plans the upgrade without knowing which mechanism it runs, confirm that first, because the failover behavior and the failure modes differ. Before each node restart, check two things that are easy to overlook. First, load-balanced connections: queues on the node being stopped may hold FlowFiles that are distributed across the cluster, and the connection's load-balancing strategy determines whether those FlowFiles drain or wait for the node to return. Second, repository storage: the FlowFile, content and provenance repositories must be on healthy, correctly sized volumes, and the node must have free disk space for the restart. A node that comes back with a full or corrupted repository will not rejoin cleanly. Record queue depths and repository usage for each node before you begin, so you can judge whether the cluster is recovering or drifting. The most common failures come from configuration that differs between nodes. A mismatched Java runtime is the first thing to rule out. NiFi's administration guide lists Java 21 as the minimum runtime, so a node that is upgraded to a different JDK build, or that still runs an older JVM from a previous image, can fail to start or behave unpredictably. Certificate and truststore drift is the second. If one node has a renewed keystore or an updated truststore and the others do not, cluster communication and client connections can fail on that node only. Compare checksums of the security files on every node before and after each restart. Flow changes can also break a rolling upgrade. A flow version that a node running the old code cannot load, or a processor whose property names changed, may stop a node from rejoining while the rest of the cluster continues. Test the target flow on a staging cluster that uses the same NiFi version and the same security configuration as production, and confirm which components the release notes mark as changed or deprecated. A node that fails to rejoin should be investigated from its logs and cluster status, not restarted repeatedly, because repeated restarts can leave the repositories in a worse state. A rolling upgrade reduces downtime only when the remaining nodes have enough capacity to carry the load during each restart. If the cluster is sized so that losing one node pushes the others past their memory, CPU or queue limits, the upgrade becomes a partial outage. Confirm this with your own sizing and load tests, not with general guidance. Also keep a tested rollback path: the previous NiFi distribution, the previous flow version and a documented procedure to return the cluster to its earlier state. Rollback should be rehearsed in staging before production, because a rollback that has never been run is rarely fast when it is needed.

What usually goes wrong after go-live and how to prevent it

Most NiFi production problems after go-live come from a small set of decisions made early and never revisited. Each card names one pattern, the prevention step and the artifact that shows the step was done.

Skipping 2.x minor releases

Teams that stay on one 2.x release for a long time find that the gap to the current minor release is too large to test in one pass. The NiFi downloads page lists NiFi 2.12.0 as released on September 13, 2026, so a cluster still on an early 2.x line faces many changes at once. Prevention is a standing schedule for stepping through minor releases in a non-production environment, with a dated record of each step. Ask for the upgrade log and the test results for each minor release crossed.

Running Kerberos or single-user mode

The NiFi administration guide lists single-user, LDAP, OpenID Connect, SAML 2.0 and X.509 client certificate authentication as supported, and marks the Kerberos provider as deprecated. Single-user mode gives no per-user accountability for flow changes, and a deprecated provider adds risk to every future upgrade. Check which authenticator each cluster uses, confirm that a supported provider maps identities to policies, and keep the authorizer configuration under version control. The artifact is the reviewed login configuration and an access policy export.

Relying on NiFi Registry alone

The NiFi downloads page states that NiFi Registry is deprecated and planned for removal in NiFi 3.0, so a versioning setup built only on Registry will need to change. Flow Registry Clients for GitHub and GitLab give NiFi 2 a Git-based path that does not depend on Registry. Prevention is a documented decision on where flow versions live, a migration plan from Registry to a Git-backed client, and a tested rollback to a known flow version. The artifact is the versioning runbook and a recorded restore of one flow.

Untested Python processor interpreters

The NiFi administration guide lists Python 3.10, 3.11 or 3.12 for the optional Python-based processors and describes this feature as beta. A host OS update that changes the default interpreter can break Python processors without any NiFi change. Pin the interpreter version used by NiFi, test each Python processor against the pinned version before any host update, and record the result. The artifact is the interpreter pin in the host configuration and a test run of each Python processor on that version.

Custom processors built against old APIs

A custom processor compiled against an older NiFi API can load on one release and fail at startup on another, which often shows up only when a node restarts. The NiFi project changed several components between 1.x and 2.x, so the mismatch is common after a version jump. Rebuild every NAR against the target NiFi version, deploy it to a test cluster, and confirm that startup and a sample flow both pass. The artifact is a build record that names the NiFi version used for each NAR and a clean startup log from the test cluster.

Upgrades applied directly to production

Applying a version change straight to a production cluster removes the chance to find flow breakage before data moves. Upgrades affect the flow configuration file, removed variables, renamed components and the Java runtime, so each one needs a rehearsal on a copy of production flows. Keep a non-production cluster that mirrors the production topology and runs the same flows before any production change. The artifact is a signed-off rehearsal report and a rollback plan that was tested on the copy.

Undocumented manual node changes

Changes made by hand on one node, such as an edited property file, a patched library or a changed local certificate, make that node behave differently from its peers. In a cluster this surfaces as intermittent failures that disappear after a restart and then return. Keep node configuration in one managed source, record any emergency change in a change log, and compare node configuration after each upgrade. The artifact is a configuration diff across nodes and a change log with a named owner for each entry.

Why custom processors need rebuilds on every NiFi upgrade

Custom processors and controller services do not survive a NiFi upgrade on their own. They are packaged as NiFi Archive (NAR) files and compiled against the NiFi API of a specific release, so each target version needs a fresh build, a compatibility test and a check of every API the code calls. A NAR built for one release can load on another and still fail at runtime when a class, method or extension point has changed, so a clean startup is not evidence that the code works. Plan the rebuild as a required workstream in every upgrade, not an optional cleanup after the cluster is already running the new version.

A rebuild starts with the toolchain. Confirm that the Java version, Maven or Gradle release, and the NiFi API and NAR plugin versions your build references are the ones the target release expects. Then update dependency versions, since third-party libraries bundled or referenced by the processor may need changes to match the runtime your NiFi version ships with. Check the minimum runtime in the NiFi administration guide for the target release, because the Java 21 minimum for NiFi 2 applies to custom code too. Record the exact versions used, so a later audit can reproduce the artifact.

Testing comes next. Run the existing unit tests against the new API, then integration tests that exercise the processor inside a NiFi instance of the target version, including its property validation, relationships, state handling and error routes. Where the processor calls deprecated APIs, decide whether to replace them now or accept the warning for one release and schedule the change. Deprecation checks are easy to skip because the code still compiles, so make them an explicit gate with a written result. If the processor is a controller service used by other flows, test those dependent flows too.

Deployment is where many rebuilds fail. Confirm that the NAR loads on every node in the cluster, not only the node you tested on, because a missing dependency or a mismatched NAR version can leave one node unable to start the component. Check the cluster's logs for extension loading errors after each node restarts. Record build provenance for every NAR you deploy: source revision, build date, toolchain versions, test results and the NiFi version it targets. Store this record with your change documentation so you can show which code ran in which environment at any point.

The migration guidance for 1.x to 2.x adds a second risk. NiFi 2.0 removed the variable registry expression language scope and replaced it with an ENVIRONMENT scope, and renamed the distributed map cache components. Custom code that refers to either by name, or that reads variables through the old scope, will need changes even if its build is otherwise clean. Ask whoever owns each custom component to search it for these references before the rebuild starts. Custom processor development, including how to design and package these components, is covered on its own sibling page, so this section concerns keeping existing code running.

Which upgrade and support tasks teams keep in-house and which they outsource

This table compares, task by task, what most teams keep internal and what they commonly hand to a partner for NiFi upgrades and support. Read each row as a default split, then adjust it to your staffing, change process and on-call model. The main takeaway is that flow ownership and daily operations usually stay with your team, while planned upgrades, rehearsals and contract coverage are where outside help is most often used.

TaskUsually kept in-houseUsually outsourcedSkills each needs
Routine monitoring and bulletin reviewDaily checks of bulletins, queue depth and node health by the operations teamPeriodic health reviews or alert tuning under a support agreementIn-house: NiFi UI and bulletin triage. Partner: cluster diagnostics and alert design
Flow owner decisions on flow changesBusiness and data owners approve what each flow does and when it changesAdvice on design trade-offs when a change is largeIn-house: domain knowledge of the data. Partner: NiFi flow design patterns
Release tracking and reading release notesNamed engineer tracks releases and decides the target versionWritten impact review of a target release against your flows and componentsIn-house: release governance. Partner: reading deprecations and migration notes
First rolling upgrade on a production clusterOperations staff attend and approve the change windowPlanning, runbook, rehearsal on a copy and execution supportIn-house: change control and cluster access. Partner: rolling upgrade sequencing and rollback
Custom processor source maintenanceOwner of the processor code keeps the repository and approves changesRebuilding NARs against a new NiFi version and fixing API breaksIn-house: Java code ownership. Partner: NiFi extension API and build tooling
Authentication and certificate renewalIdentity and PKI teams issue and rotate certificates and group mappingsVerifying TLS and identity settings after renewal or a provider changeIn-house: PKI and identity administration. Partner: NiFi authorizer and TLS configuration
Incident response outside business hoursOn-call rota owns first response and escalationContracted coverage with defined response expectations as set in the agreementIn-house: escalation and access to systems. Partner: NiFi failure analysis and recovery
Compliance evidence for change managementChange records, approvals and sign-offs are kept by your change boardPreparing upgrade records, test results and configuration evidence for assessorsIn-house: control ownership. Partner: evidence packaging. Assessors and auditors give the final view

How upgrade work changes by starting point and hosting model

Clusters on virtual machines or bare metal coordinate through ZooKeeper, either embedded or external. The upgrade is built around rolling node replacement: one node leaves the cluster, is upgraded and rejoins before the next node moves. The ZooKeeper ensemble, the repositories on each node and the shared flow definition all need checks before the first node stops.

  • Coordination layer: Confirm whether ZooKeeper is embedded or external. An external ensemble may need its own upgrade schedule.
  • Flow definition: Back up the current flow and confirm which flow configuration file the cluster reads.
  • Node sequence: Set the order in which nodes leave and rejoin, and the health condition that must hold before the next node moves.
  • Custom components: Rebuild and retest custom NARs against the target release before the rolling change starts.
  • Runtime: Confirm Java 21 on every node, plus Python 3.10, 3.11 or 3.12 if optional Python processors are in use.

You provide the maintenance window, host access, ZooKeeper administrative access and verified backups. The main risk is a node that fails to rejoin, which leaves the cluster below full capacity and can hide a version mismatch. Check that every node reports the same version and a healthy cluster status before you move to the next one.

What buyers ask before hiring help with Apache NiFi upgrades

How much does an Apache NiFi upgrade or support plan cost?

The cost follows from a written scope, and DeployOpen does not publish a price list, so a quote is issued once the scope is agreed. Main cost drivers: the number of clusters and environments, the number of flows and custom processors to check, how many NiFi versions you must cross, and whether the work is a one-time upgrade or an ongoing plan. An upgrade has one-time costs (assessment, testing, cutover), while support is usually recurring. Ask each quote to separate those lines, state what is excluded, and name who performs testing and rollback. The implementation plan and cost section explains the effort drivers in more detail. The Apache NiFi project itself has no license fee under Apache-2.0, so your spending falls on people, infrastructure and any support plan.

How long does a NiFi upgrade take and what must we provide?

Duration depends mainly on how many clusters, flows and custom components you run and how far you are moving. No timeline is given here because it depends on your environment. Moving from 1.x adds steps: the NiFi migration guidance requires upgrading to 1.27.0 before moving to 2.0.0, and it requires changing the flow configuration file from flow.xml.gz to flow.json.gz. Your side typically provides: access to non-production and production environments, agreed change windows, a current backup of the flow and repositories, named owners who approve flow tests, and the identity and certificate details for the target cluster. Ask any proposal for its phase plan and the client tasks it assumes. The migration section walks through each phase.

Can our own team upgrade Apache NiFi without outside help?

Yes, if your team has Java and NiFi administration skills, change management discipline and time to test flows. Minor upgrades within NiFi 2 are often handled in-house, while a move from 1.x to 2.x involves more change. The work includes reading release notes, reviewing deprecated components, converting the flow file format, rebuilding custom NARs against the new release, running a rolling cluster upgrade and validating data flows end to end. Consider who will own this after go-live. NiFi 2.12.0 was released on September 13, 2026, so staying current means repeating the process. A partner is useful when skills or capacity are missing or when you want an independent test plan.

How often should we upgrade Apache NiFi after go-live?

The right frequency depends on your risk tolerance, your change policy and the project's release cadence. The NiFi downloads page strongly encourages users to move to NiFi 2, and NiFi 1.28.1 reached end of support on December 8, 2024, so staying on 1.x means running software the project no longer supports. For NiFi 2, the project released 2.12.0 on September 13, 2026, together with MiNiFi Java 2.12.0 and NiFi Registry 2.12.0. A sustainable pattern is a recurring review of each new minor release, a dated test cycle in non-production and a rehearsed rolling cluster upgrade procedure. Before choosing a target version, check the release notes to confirm which versions your components and custom NARs support.

Does Apache NiFi have a paid support edition?

No. The Apache NiFi project is released under the Apache License 2.0 (SPDX: Apache-2.0), and the project itself does not offer a paid edition. Support therefore comes from the community, from your own staff or from a services provider. Some commercial NiFi-based products and managed services exist, and each has its own terms. If you compare options, ask each vendor which NiFi versions it covers, how it handles custom processors, what it supports in your environment and what response commitments it makes in writing. The cost of ownership and editions section compares running NiFi yourself with these alternatives.

What happens to our custom processors during a NiFi upgrade?

Custom processors are built against a specific NiFi API, so they usually need rebuilding and testing before the cluster moves to a new release. Start with an inventory of every NAR, its dependencies and the NiFi version it was built for. Check for references to components or behaviors the migration guidance changes, including the variable registry expression language scope that NiFi 2.0 replaced with an ENVIRONMENT scope and the renamed distributed map cache components. Rebuild each NAR, run unit and integration tests, and deploy to a staging cluster with representative flows. Optional Python-based processors need Python 3.10, 3.11 or 3.12, and the administration guide describes that feature as beta. The custom processor development section covers build and test detail.

Can NiFi 1.x still receive patches after end of support?

The project no longer maintains the 1.x line. Its documentation explains that 1.x depends on Jetty 9.4, Spring Framework 5.3 and AngularJS 1.8, which cannot be upgraded within that line. NiFi 1.28 is the last minor release of the version 1 series, and 1.28.1 reached end of support on December 8, 2024. If you run 1.x, you carry exposure to components you cannot update in place. Your practical options are a migration to NiFi 2 or a documented compensating control plan that your security team owns and accepts. Confirm the current status on the NiFi downloads page before deciding, and assess any third-party patch offer as a separate risk.

What does a NiFi support agreement actually cover?

A support agreement should name the products, NiFi versions, environments and support hours it covers, along with what counts as an incident and how changes are requested and approved. DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ask for a written list of included tasks, such as release reviews, upgrades, custom processor rebuilds, backup checks, flow reviews and security testing. Also confirm exclusions, the handling of new minor releases and any response times or service levels, which should appear in the signed agreement. A quote follows from the written scope.

How DeployOpen scopes, delivers and supports NiFi upgrades

DeployOpen approaches Apache NiFi upgrades as a written, fixed-scope piece of work inside your own infrastructure, starting with an inventory of your flows, custom components and cluster. The work moves through build, testing and documented handover, and ongoing support can be added as a retainer.

How we scope

  • The written scope lists which NiFi versions, flows, custom processors and cluster nodes are included.
  • We inventory deprecated components, renamed services and any use of single-user or Kerberos authentication.
  • Scope states which environments are upgraded, which are only tested and where cutover responsibilities sit.
  • Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.

How we build

  • Upgrade paths follow the project's migration guidance, including any required stepping-stone release.
  • Flow configuration changes are applied and checked in a non-production environment that mirrors production.
  • Custom processors are rebuilt and retested against the target NiFi release before they reach the cluster.
  • Rolling cluster upgrades are sequenced node by node so each step can be verified and rolled back.

How we hand over

  • Deliverables include a record of the versions, configuration changes and components that were modified.
  • Test results for each flow and custom component are documented against the agreed acceptance criteria.
  • Runbooks describe the upgrade sequence, rollback steps and checks for each cluster node.
  • Knowledge transfer sessions cover the steps your team will repeat for future minor releases.

How we support

  • Ongoing support is available as a retainer and can cover following minor releases after go-live.
  • Retainer scope, response expectations and included activities are defined in the written agreement, not assumed.
  • Support can include rechecking deprecated components and rebuilding custom processors when NiFi changes.
  • Ask any provider to confirm in writing what the support agreement covers and what it excludes.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.