I did a project not long ago with NiFi and couldn't have been happier... And this was a use case not fully in line with what NiFi is.
The community was especially helpful, responsive, and patient with my limited understanding of their tool.
In the end it was the most stable part of the overall project operationally speaking.
I've always wondered how far you can push it to build a distributed application considering it can be clustered and you can control threading on the processors. Seems like you could prototype out a pretty large, robust backend without dealing with the overhead of individual services.