Nuts-and-Bolts is a small Java application framework which is used at hh.ru to create micro-services.
Please read Disclaimer before using this framework.
[major].[minor].[micro]
- major version part - changes on dramatic technological platform changes
- minor version part - changes require a few lines of additional code to make it work
- micro version part - changes do not require additional code to make it work
update 4.17.1 -> 4.17.3 - should not require any additional code
update 4.17.10 -> 4.18.0 - should require some additional code
Absence of the code required for new mior version may not break an application compeletely. But it may cause partial degradation. Please, pay attention to check the app is working properly on such updates
-
Extended configuration of Jetty:
- fail-fast (does not accept new connections if all threads are busy)
- graceful shutdown (waits for current requests to be completed before shutdown)
- built-in off-heap server cache
- built-in monitoring
- logging filters
- websocket support
-
JDBC:
- using multiple data sources (master, slaves)
- built-in monitoring of data source, connections and call stack before statement
- timed-out statements
- Embedded PostgreSQL for unit-testing
-
Hibernate:
- transaction support for multiple data sources
- extended logging for queries (requestId, controller name)
-
Kafka-integration:
- consumers/producers configuration
All crucial dependencies in any NaB module have to be managed with parent pom dependency management to be able to provide these versions into app via pom import and guarantee version consistency with NaB required versions How to release a new version