Skip to content

Мейнтейнер: Команда Платформа. Web application framework for HeadHunter internal services

Notifications You must be signed in to change notification settings

hhru/nuts-and-bolts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status codecov Quality Gate Status Maintainability Rating

Nuts-and-Bolts

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.

Versioning policy

[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

Main features

  • 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

Getting started

Full example

Dependency management policy

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

About

Мейнтейнер: Команда Платформа. Web application framework for HeadHunter internal services

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages