We have multiple nifi users and separate dev, test, and prod nifi instances. Our users are developing flows in dev and moving them to test and prod via a central flow registry instance.
If we upgrade the lower environments before the higher, a user can develop flows that will not instantiate on the higher env due to them being developed with a higher version of nifi.
But we want to upgrade the lower envs first to allow issues to surface in dev and test before we upgrade prod.
My questions are
What are the actual between-version flow compatibility goals of nifi? Are we guaranteed backward compatibility but not forward?
What is a good strategy for handling nifi upgrades in a traditional dev->test->prod configuration, while maintaing availability and enabling mostly painless SDLC?
Never got a good answer to this, but on talking to other folks it seems like a solution is to have a paralell dev,test,prod cluster for each upgrade which is not very fun, especially with frequent HDF/nifi releases.
Another solution would be to have a prodqa env and test there first, then upgrade prod,test,dev in that order, that way you are never pushing newer nifi flows to an older nifi version.