If suppose I have 5 process groups in a NiFi flow and I am adding a processor in one of the process group, does this change the UUIDs of all processors in that NiFi flow?
The reason I am asking this is because, I am using GIT to maintain XMLs of NiFi flows, when I make a change and raise a pull request against master branch, I see that the UUIDs of all processors in the entire flow changes. If another person at the same time makes a change to a processor(on a different instance of NiFi) and raises a pull request against master branch there will be a conflict.
So as to avoid this, one has to make their changes and once they are merged to master branch, the other person needs to get the latest changes in master branch and then work on his/her change.
Once a processor is assigned a UUID that processor will keep that UUID unless you delete and re-add that processor. - All processors within a single NiFi cluster will be running an identical flow.xml.gz. - I am guessing you are creating templates and then importing these into different NiFi instances? Templates do not preserve UUIDs. Each time you instantiate a template, all the components will get a new UUID.
If you are trying to version control flows across multiple independent NiFi installations, you will want to take a look at using the nifi-registry for this. As of Apache NiFi 1.5.0, nifi-registry and version controlling flows were introduced. In the latest Apache NiFi releases with nifi-registry 0.2, these version controlled flows can even be pushed to Git.
Using nifi-registry will allow independent NiFi instances the ability to push and pull version controlled flows.