## Запуск ### Первый запуск: ```shell make first_run ``` Команда запустит БД (PostgreSQL 15), Rest-сервис, накатит миграцию в БД и заполнит базу рандомными данными (2 миллиона записей). ### Повторный запуск сервиса: ```shell make start ``` ### Вызов метода проверки дубликатов: ```shell curl -X GET --location "http://127.0.0.1:8001/124/432" ``` ### Отдельно добавил выгрузку тестовых данных из БД: ```shell curl -X GET --location "http://127.0.0.1:8001/list" > data.txt ``` ### Запрос с гарантировано дублируемыми IP: ```shell curl -X GET --location "http://127.0.0.1:8001/88888/99999" ``` ## Комментарии к реализации Есть тесты на основной методв репозитория (с использованием docker через либу dockertest), на остальное тестов не делал. Добавил ещё бэнчмарк и fuzzy-тест, но они работать будут только при запущенном в докере сервисе. При запуске вся база подтягивается в локальный кэш. Кэш обновляется по умолчанию каждую секунду (настраиваемо, подтягиваются только новые записи). Был вариант ещё вместо обновления по тикеру сделать триггер в бд и через notify/listen постгреса добавлять новые записи в кэш. Было бы эффективнее, но на данном этапе выглядит как оверинженеринг. Для продакшена не хватает метрик и алертов в сентри, но на это уже времени тратить не хочется.