simonbence opened a new pull request, #8123: URL: https://github.com/apache/nifi/pull/8123
# Summary This is a reworking of the original `QuestDB` based status history based on community feedback. The main intention is to improve the maturity of the feature in order to be a possible default setting for 2.0. This improvement mainly focuses but not limited to: - Centralisation and separation of the `QuestDB` related code in order to better maintenance - Add capabilities to the client and database management which helps us dealing with issues (prioritising the continuity of the `NiFi` core functionality over the availability of the database) - Clarifications on the related repository code including exposing more customisation options in the properties among other things. The review if fairly big and complication. My suggested approach for easier understanding is the following: - The retry capability is something might be tackled separately, it provides a robust solution to retry smaller operations and used by the `quest-db` module. The `SynchronousRetryTemplateTest` is suggested for quicker grasping. - The newly added `quest-db` module is a good starting point for the actual `QuestDB` functionality. The included package description provides some overview of the main areas. The unit tests most helpful for understanding are the `CompositeClientTest` and the `EmbeddedDatabaseManagerTest`. Up to these point the code are considered standalone and however it follows `NiFi` conventions in the most regards, not depending on `NiFi` features. - Last part of the PR is the changes around the application of the code above. The tests were covering the previous implementation (`EmbeddedQuestDbStatusHistoryRepositoryForComponentsTest` and `EmbeddedQuestDbStatusHistoryRepositoryForNodeTest`) are still in place and other than some smaller technical changes they still guard the function the same way. Other then these, the code organisation changed heavily. Most of the business logic around handling the snapshots are the same but as the `QuestDB` specific code are moved out from the core, the structure evolved. I suggest to start with the `EmbeddedQuestDbStatusHistoryRepository` itself and go top-down. Majority of the related code is within the same package, other changes around are to integrate it properly. Please if any question is raising about either the approach or the implementation, do not hesitate to leave a comment about that, some additional context might be helpful to communicate my intent with the details of the change. Thanks! [NIFI-12236](https://issues.apache.org/jira/browse/NIFI-12236) # Tracking Please complete the following tracking steps prior to pull request creation. ### Issue Tracking - [ ] [Apache NiFi Jira](https://issues.apache.org/jira/browse/NIFI) issue created ### Pull Request Tracking - [ ] Pull Request title starts with Apache NiFi Jira issue number, such as `NIFI-00000` - [ ] Pull Request commit message starts with Apache NiFi Jira issue number, as such `NIFI-00000` ### Pull Request Formatting - [ ] Pull Request based on current revision of the `main` branch - [ ] Pull Request refers to a feature branch with one commit containing changes # Verification Please indicate the verification steps performed prior to pull request creation. ### Build - [ ] Build completed using `mvn clean install -P contrib-check` - [ ] JDK 21 ### Licensing - [ ] New dependencies are compatible with the [Apache License 2.0](https://apache.org/licenses/LICENSE-2.0) according to the [License Policy](https://www.apache.org/legal/resolved.html) - [ ] New dependencies are documented in applicable `LICENSE` and `NOTICE` files ### Documentation - [ ] Documentation formatting appears as expected in rendered files -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org