Naumen Java Meetup #3
О событии
Naumen Java Meetup — сообщество java-разработчиков, которое развивает Naumen. С 2014 года мы проводим онлайн-митапы с экспертами java-разработки, делимся знаниями и собираем профессионалов для обмена идеями и лучшими практиками. После каждой встречи мы приглашаем участников из Екатеринбурга на афтепати. Это позволяет пообщаться вживую, задать вопросы, которые не успели обсудить на митапе, а также обрести новые знакомства.
Программа
Год назад в Naumen появилась возможность разработать новую систему корпоративного поиска и обработки данных. В качестве архитектуры мы решили выбрать модульный монолит. Это позволило сохранить простоту разработки и возможность масштабирования системы как в микросервисах.
На примере проекта выше я расскажу, какие преимущества и недостатки появляются при сопровождении подобных систем. А также поделюсь:
- как работать с данными;
- структурировать и деплоить кодовую базу;
- распределять приложение под нагрузкой;
- настраивать мониторинг и логирование;
- проводить рефакторинг.
Свой путь java-разработчика я начал в 2011 году. За 13 лет не один раз сталкивался с фейлами и задачами, решениями которых готов поделиться. Например, как лень обработать исключение вылилась в плавающую ошибку в промышленной эксплуатации на несколько месяцев. Или как нехватка опыта спрогнозировать возможное поведение системы, а также непонимание работы инфраструктуры и компонентов привели к финансовым убыткам компании. В докладе я также покажу, что паттерны проектирования придумали не ради каверзных вопросов на собеседовании. Доклад будет интересен для разработчиков middle и senior уровней.
Как большие почитатели языка Java, мы, Naumen Service Management Platform, стараемся мигрировать на свежие версии языка. Причин множество: это и улучшенная безопасность, и появление крутых языковых фич, и буст перформанса. Но путь не всегда оказывается простым.
В докладе я расскажу, с какими проблемами и препятствиями мы столкнулись при обновлении продукта Naumen SMP на новую LTS версию Java. Также поделюсь мыслями, а зачем вообще стоит обновляться.
Доклад будет полезен разработчикам и техлидам, которые задумываются или уже планируют миграцию их систем на Java 21.
При создании микросервисной архитектуры мы полагаемся не только на транзакции в базах данных, но и на бизнес-транзакции. Набор операций выполняется в разных сервисах и при этом обладает такими же свойствами ACID, как и транзакции БД.
Реализация бизнес-транзакций часто осложняется, ведь для этого нужно:
- определять из множества способов реализации верный;
- уметь правильно выбирать инструменты и паттерны;
- знать особенности работы инструментов.
Моя команда также столкнулась с этими сложностями. Мы выявили интересный дефект и узнали кое-что новое про аннотации JPA, такие как @PostPersist, и их соотношение с транзакционностью.
В своём докладе я проведу вас по пути от ошибки до обзора некоторых способов её устранения и выбора итоговой реализации. Всё это — в условиях системы, построенной на микросервисах и имеющей определенные требования к бизнес-транзакциям.
Мы ищем спикеров
Если ты хочешь поучаствовать как спикер в следующем митапе, напиши, о чем хочешь рассказать