Как укротить буйного в отделении: смирительные Java-рубашки для MongoDB

Среди американских стартапов считается нормальным использовать в качестве базы данных для проекта NoSQL. Под это выделяются бюджеты, про это потом показывают слайды в презентациях.

Обычного Java — программиста ни жизнь, ни универ, ни типичный веб-проект не готовят к низкоуровневому взаимодействию через Java-драйверы. Через 15 минут кодинга он словно маленький ребенок начинает требовать Hibernate или его подобие для элементарного маппинга бесчисленных (на этапе построения прототипа, особенно) сущностей на гхм..таблицы в новой базе данных.

Однако, в высоконагруженных проектах свои требования, тут приходится считать каждый лишний байт метаинформации и рефлексия может стать расточительной тратой ресурсов JVM. Стандартный драйвер предлагает многое, ORM-like framework Morphia звучит как сладкий сон, но покрывает не все кейсы, Spring Data пытается сказать «тада, я тут, братцы», но растягивается на полу в луже конфигов, Kundera для всего подряд напоминает хорошую мину при плохой игре.. Вы можете погрязнуть во всем этом с головой и никогда не вынырнуть.

Свет в конце тоннеля есть, я дам вам железные аргументы для использования того или иного инструмента в ваши усталые от маппинга руки... А может быть мы вообще сможем заменить Mongo на что-то поинтереснее.


Алексей Зиновьев 

Java Trainer в компании EPAM, лидер Google Developer Group Omsk, аспирант ОмГУ, специализирующийся в исследовании транспортных сетей, дорожных графов, хранении и обработке больших данных. В рабочих проектах неоднократно приходилось готовить бэкендовый суп из различных NoSQL баз данных, гонять данные между сервисами и слоями. Большое количество боли вызывало потребность автоматизировать некоторые действия и вспомнить светлые деньки с различными ORM для SQL.