→ repository.findAll()
Компилируется, тесты проходит, на QA тоже всё ок потому что данных мало.
А потом в проде прилетает реальный трафик, JVM начинает пухнуть от хипа и p99 улетает в космос. Причина простая — вызов неограниченный по объёму. Без лимитов, без пагинации, без стриминга.
показательный случай про цену подобных ошибок:
• ракета Ariane 5
• стоимость проекта — 370 млн
• в коде было преобразование 64-битного значения к 16-битному
• при ускорении значение вышло за пределы
• произошёл overflow, навигация отказала
• запуск провалился, 370 млн просто улетели
Вывод: неограниченные операции в коде — всегда риск.
Из той же категории:
• collect(toList()) на огромных стримах
•
@Transactional прямо на контроллерах• synchronized на нагруженном месте
👉 Java Portal
