Hi Bobby,
You probably already known this, but You could use NiFi QueryDatabaseTable processor for incremental reading.
NiFi database processors are using connection pooling, so getting new connection is pretty fast.
Database Extract with NiFi
https://www.batchiq.com/database-extract-with-nifi.html2. Is it OK to use one flow file for one message?
It depends. Often one flow file per one message is OK.
But handling FlowFile has some overhead, so if you need blazing speed, combining several messages to one FlowFile is maybe better alternative.
3. Is it possible and recommended to use dependency injection library like Spring?
Not sure I understand your question, how and why you want to dependency injection?
You can always create your specific processors which handle your data in desired way.
Thank you
Toivo