Основная идея реализация в получении веб сервисом доступного диапазона значений для него. Каждый раз при генерации нового id происходит проверка текущего максимального значения, если значение превышено, то запрашиваем новый диапазон.Размер диапазона (batch-size) задается в конфигурационном файле, чем больше batch-size, тем реже сервис будет обращаться за новым диапазоном.
В качестве источников может быть СУБД, другой вебсервис, файлы и т.д., для реализации этого проекта был выбран Redis, и framework для работы с ним Redisson.
- "./gradlew build" - создание jar файла
- "docker build -f ./docker/Dockerfile.deploy -t idfactory ." - создание образа докер контейнера
- "docker-compose -f ./docker/docker-compose.yml up" - запуск Redis и двух экземпляров сервиса (сюда можно еще балансировчик накинуть)
- ./gradlew integrationTest - запуск интеграционных тестов с использованием TestContainers