Everyone knows how important code re-use is. NiFi's templates work great for this if you only have a handful of flows to use them in. Templates act more like copy-paste code re-use, because each time you apply a template, you are making a separate copy of the XML code and applying it to your canvas. What's missing is the ability to maintain one copy of the code, so that you can make changes to logic embedded in a template and have those changes applied to all instances of that code. It should work more like a library of classes in an OO language, or at least have that as an option. I propose having a type of template that can be applied in a read-only state, linked somehow to the saved template. If the source template is updated, changes to all instances of the template should be applied. I would imagine it would act similar to how variables are changed, where it has to stop all processors, apply the changes, then restart them. I think the same general idea could be applied to templates.
Referenceable templates would make creating and maintaining large NiFi deployments much easier and less error prone. I know it's been talked about in the groups before, but I think it's time to put some action behind it now.
**EDIT: Per Bryan's suggestion, this is best solved by adding functionality to the NiFi registry to be able to push out changes to all instances of a PG when the version changes. Not suggesting it be automatic, but it should be a single click to push out to all instances.