Project Valhalla: революция в памяти Java
Java-разработчики годами жили по принципу «Everything is an object». И всё бы хорошо, если бы за это нам не приходилось платить «налогом на объект»: каждый раз, когда вы создаёте простой класс из двух полей int, JVM бережно дописывает к нему тяжёлый заголовок, упаковывает в ссылку и разбрасывает по куче, заставляя процессор страдать от постоянных промахов кеша.
Мы привыкли к этому компромиссу. Мы научились использовать примитивные коллекции и костыли, чтобы выжать производительность там, где объектная модель Java начинает буксовать. Project Valhalla призван изменить сами правила игры.
Читать статью
Наш канал в Макс🟪
Java-разработчики годами жили по принципу «Everything is an object». И всё бы хорошо, если бы за это нам не приходилось платить «налогом на объект»: каждый раз, когда вы создаёте простой класс из двух полей int, JVM бережно дописывает к нему тяжёлый заголовок, упаковывает в ссылку и разбрасывает по куче, заставляя процессор страдать от постоянных промахов кеша.
Мы привыкли к этому компромиссу. Мы научились использовать примитивные коллекции и костыли, чтобы выжать производительность там, где объектная модель Java начинает буксовать. Project Valhalla призван изменить сами правила игры.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Project Valhalla: революция в памяти Java
Java-разработчики годами жили по принципу «Everything is an object». И всё бы хорошо, если бы за это не приходилось платить «налогом на о..
🔥1
Сможете ли вы спроектировать Maven‑монорепозиторий для 5 микросервисов?
В этой статье мы разберём реальную задачу на проектирование Maven Multi‑Module: от циклических зависимостей и неправильного использования spring‑boot‑maven‑plugin до смешения ролей агрегатора и родителя. Затем соберём эталонную структуру по лучшим практикам Spring Cloud и Netflix, добавим CI/CD‑диаграмму и научимся запускать сервис локально без Eureka и RabbitMQ.
Читать статью
Наш канал в Макс🟪
В этой статье мы разберём реальную задачу на проектирование Maven Multi‑Module: от циклических зависимостей и неправильного использования spring‑boot‑maven‑plugin до смешения ролей агрегатора и родителя. Затем соберём эталонную структуру по лучшим практикам Spring Cloud и Netflix, добавим CI/CD‑диаграмму и научимся запускать сервис локально без Eureka и RabbitMQ.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Сможете ли вы спроектировать Maven‑монорепозиторий для 5 микросервисов?
Мне как‑то попалась информация, что даже в опытных командах настройка монорепозитория часто делается «на глаз», и спустя пару месяцев это..
👍2🔥2
Hibernate Reactive: опыт миграции, архитектурные компромиссы и скрытая сложность
Наш проект на Quarkus столкнулся с необходимостью более эффективного использования ресурсов под высокой нагрузкой. В поисках решения мы решили попробовать миграцию с классического Hibernate ORM на Hibernate Reactive (HR). В этой статье я поделюсь реальным опытом этого перехода: разберу ключевые архитектурные различия, расскажу о неочевидных «граблях», на которые мы наступили, и покажу на production-коде, какую цену пришлось заплатить за реактивность.
Версии используемого ПО: Quarkus: 3.31.3, Quarkus Hibernate Reactive: 3.31.3 и Vertx-pg-client (реактивный клиент PostgreSQL): 4.5.24.
Все описанные ниже вопросы и особенности актуальны именно для этих версий.
Читать статью
Наш канал в Макс🟪
Наш проект на Quarkus столкнулся с необходимостью более эффективного использования ресурсов под высокой нагрузкой. В поисках решения мы решили попробовать миграцию с классического Hibernate ORM на Hibernate Reactive (HR). В этой статье я поделюсь реальным опытом этого перехода: разберу ключевые архитектурные различия, расскажу о неочевидных «граблях», на которые мы наступили, и покажу на production-коде, какую цену пришлось заплатить за реактивность.
Версии используемого ПО: Quarkus: 3.31.3, Quarkus Hibernate Reactive: 3.31.3 и Vertx-pg-client (реактивный клиент PostgreSQL): 4.5.24.
Все описанные ниже вопросы и особенности актуальны именно для этих версий.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Hibernate Reactive: опыт миграции, архитектурные компромиссы и скрытая сложность
В нашем проекте на Quarkus мы столкнулись с необходимостью более эффективного использования ресурсов под высокой нагрузкой. Решили мигрир..
👍2🔥1
Я написал симулятор квантового поля на Java. Вот что из этого вышло
Одним вечером я решил проверить: что если взять решётку из 10 000 узлов, задать одно правило передачи энергии между соседями — и просто запустить? Никакой теоретической физики из учебника, никакой подготовки. Посмотреть что вырастет само.
Спойлер: за один день появились волновое уравнение, интерференция, фазовый переход, рождение и аннигиляция частиц, и стрела времени. Всё из одного уравнения.
Читать статью
Наш канал в Макс🟪
Одним вечером я решил проверить: что если взять решётку из 10 000 узлов, задать одно правило передачи энергии между соседями — и просто запустить? Никакой теоретической физики из учебника, никакой подготовки. Посмотреть что вырастет само.
Спойлер: за один день появились волновое уравнение, интерференция, фазовый переход, рождение и аннигиляция частиц, и стрела времени. Всё из одного уравнения.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Я написал симулятор квантового поля на Java. Вот что из этого вышло
Уточнение: строго говоря, это классическое нелинейное скалярное поле — модификация уравнения Клейна-Гордона с φ⁴ потенциалом. “Квантовое”..
🔥3
Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть вторая. Альтернативы
В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным.
В ходе анализа решений Spring стало очевидно, что оба фреймворка используют радикально разные подходы в работе с данными. Казалось бы, контроль над запросами очень важен для приложений, особенно высоконагруженных. Но Spring Data JPA такого контроля не даёт. Лёгкость и простота изменения кода является залогом его чистоты и работоспособности, однако с этим есть сложности уже у Spring JDBC.
Всего-то нужен фреймворк, предоставляющий полный контроль над запросами со стороны разработчика и не создающий трудностей при развитии, изменении и рефакторинге кода. В этой статье мы разберём две альтернативы, которые, на мой взгляд, в меньшей степени подвержены проблемам Spring Data JPA и Spring JDBC.
Это будут jOOQ и Exposed.
Читать статью
Наш канал в Макс🟪
В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным.
В ходе анализа решений Spring стало очевидно, что оба фреймворка используют радикально разные подходы в работе с данными. Казалось бы, контроль над запросами очень важен для приложений, особенно высоконагруженных. Но Spring Data JPA такого контроля не даёт. Лёгкость и простота изменения кода является залогом его чистоты и работоспособности, однако с этим есть сложности уже у Spring JDBC.
Всего-то нужен фреймворк, предоставляющий полный контроль над запросами со стороны разработчика и не создающий трудностей при развитии, изменении и рефакторинге кода. В этой статье мы разберём две альтернативы, которые, на мой взгляд, в меньшей степени подвержены проблемам Spring Data JPA и Spring JDBC.
Это будут jOOQ и Exposed.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть вторая. Альтернативы
В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным.
👍4🔥3🎄1
Шёл за утечкой памяти, нашёл утечку диска: SXSSFWorkbook без dispose() в Apache POI
Меня зовут Игорь Симаков, работаю engineering manager’ом и руковожу командами разработки
На одном из наших сервисов, который работает с XLSX-файлами, прилетел production-алерт на высокое потребление памяти. Стандартный P3, обычно решается рестартом. Пошёл смотреть поды и нашёл проблему, к памяти отношения не имеющую, но представляющую больший риск, чем сам алерт. Об этом и расскажу ниже: чем «утечка диска» отличается от «утечки памяти», как мы наткнулись на грабли в Apache POI и как закрыли их на уровне архитектуры
Читать статью
Наш канал в Макс🟪
Меня зовут Игорь Симаков, работаю engineering manager’ом и руковожу командами разработки
На одном из наших сервисов, который работает с XLSX-файлами, прилетел production-алерт на высокое потребление памяти. Стандартный P3, обычно решается рестартом. Пошёл смотреть поды и нашёл проблему, к памяти отношения не имеющую, но представляющую больший риск, чем сам алерт. Об этом и расскажу ниже: чем «утечка диска» отличается от «утечки памяти», как мы наткнулись на грабли в Apache POI и как закрыли их на уровне архитектуры
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Шёл за утечкой памяти, нашёл утечку диска: SXSSFWorkbook без dispose() в Apache POI
Меня зовут Игорь Симаков, работаю engineering manager’ом и руковожу командами разработки
🔥4👍3❤2
Семь вещей, которые нельзя делать из-за стирания типов в Java
Мы, разработчики на Java, используем параметризованные типы каждый день: List<String>, Map<Long, User>, Optional<Order> и так далее. Однако у параметризованных типов есть важная особенность: в Java они существуют в полном виде только на этапе компиляции.
Читать статью
Наш канал в Макс🟪
Мы, разработчики на Java, используем параметризованные типы каждый день: List<String>, Map<Long, User>, Optional<Order> и так далее. Однако у параметризованных типов есть важная особенность: в Java они существуют в полном виде только на этапе компиляции.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Семь вещей, которые нельзя делать из-за стирания типов в Java
Мы, разработчики на Java, используем параметризованные типы каждый день: List<String>, Map<Long, User>, Optional<Order> и так далее. Одна..
👍3🔥2
Стили интеграции: от файлов до событий — как выбрать правильно
Выбирать стиль интеграции приложений — всё равно что выбирать фундамент для дома. Ошибёшься — и переделывать придётся, когда стены уже стоят.
В этой статье я разбираю четыре основных стиля интеграции: передача файлов, общая база данных, удалённый вызов процедур (RPC) и асинхронный обмен сообщениями (Messaging). Без воды, на реальных примерах — включая историю провала TSB Bank, который стоил сотен миллионов фунтов.
Вы узнаете:
▪️ почему общая база данных — это антипаттерн для микросервисов;
▪️ как асинхронность спасает прод, когда падают соседние сервисы;
▪️ какие best practice используют команды, чтобы не получить распределённый монолит.
Если вы архитектор, тимлид или разработчик, который хочет строить надёжные системы — добро пожаловать под кат.
Читать статью
Наш канал в Макс🟪
Выбирать стиль интеграции приложений — всё равно что выбирать фундамент для дома. Ошибёшься — и переделывать придётся, когда стены уже стоят.
В этой статье я разбираю четыре основных стиля интеграции: передача файлов, общая база данных, удалённый вызов процедур (RPC) и асинхронный обмен сообщениями (Messaging). Без воды, на реальных примерах — включая историю провала TSB Bank, который стоил сотен миллионов фунтов.
Вы узнаете:
▪️ почему общая база данных — это антипаттерн для микросервисов;
▪️ как асинхронность спасает прод, когда падают соседние сервисы;
▪️ какие best practice используют команды, чтобы не получить распределённый монолит.
Если вы архитектор, тимлид или разработчик, который хочет строить надёжные системы — добро пожаловать под кат.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Стили интеграции: от файлов до событий — как выбрать правильно
Всем привет, меня зовут Сергей Прощаев.
🔥2👍1
Как избежать 7 критических ошибок при переходе на микросервисы
Микросервисы обещают масштабирование и независимость команд, но чаще ломают систему медленнее монолита. Почему?
В статье разбираем семь архитектурных ошибок, которые можно встретить в реальных системах: выбор по моде, shared database, игнорирование network latency, операционная сложность на потом, слишком мелкая декомпозиция, отсутствие стратегии consistency, недооценка сроков миграции.
Читать статью
Наш канал в Макс🟪
Микросервисы обещают масштабирование и независимость команд, но чаще ломают систему медленнее монолита. Почему?
В статье разбираем семь архитектурных ошибок, которые можно встретить в реальных системах: выбор по моде, shared database, игнорирование network latency, операционная сложность на потом, слишком мелкая декомпозиция, отсутствие стратегии consistency, недооценка сроков миграции.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Как избежать 7 критических ошибок при переходе на микросервисы
Всем привет, меня зовут Сергей Прощаев. Я Tech Lead и руководитель направления Java | Kotlin разработки в FinTech и E-commerce. За послед..
👍1🔥1
Как устроена транскрипция в Jitsi Meet: Jigasi, SIP и путь до EMR
Когда мы проектировали пайплайн автоматического заполнения EMR по итогам видеоконсультаций, исходная гипотеза была простой: Jitsi Meet — open source, документация есть, значит, подключить бота и получить транскрипт — задача на пару дней. На практике именно этот слой занял непропорционально много времени относительно своей "очевидности".
В этой статье разберу, как устроена транскрипция в Jitsi Meet под капотом, почему это не "просто включить кнопку", с какими конфигурационными нюансами пришлось столкнуться и как в итоге был выстроен пайплайн от видеозвонка до структурированного текста.
Читать статью
Наш канал в Макс🟪
Когда мы проектировали пайплайн автоматического заполнения EMR по итогам видеоконсультаций, исходная гипотеза была простой: Jitsi Meet — open source, документация есть, значит, подключить бота и получить транскрипт — задача на пару дней. На практике именно этот слой занял непропорционально много времени относительно своей "очевидности".
В этой статье разберу, как устроена транскрипция в Jitsi Meet под капотом, почему это не "просто включить кнопку", с какими конфигурационными нюансами пришлось столкнуться и как в итоге был выстроен пайплайн от видеозвонка до структурированного текста.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Как устроена транскрипция в Jitsi Meet: Jigasi, SIP и путь до EMR
Когда мы проектировали пайплайн автоматического заполнения EMR по итогам видеоконсультаций, исходная гипотеза была простой: Jitsi Meet —..
🔥1
HttpClient в Spring 7: замена FeignClient или нет?
Последние годы FeignClient и RestTemplate были де-факто стандартом для вызова внешних API в Spring. Но теперь появился нативный Http Interface Client — и я решил проверить, можно ли им заменить Feign без потери удобства.
Читать статью
Наш канал в Макс🟪
Последние годы FeignClient и RestTemplate были де-факто стандартом для вызова внешних API в Spring. Но теперь появился нативный Http Interface Client — и я решил проверить, можно ли им заменить Feign без потери удобства.
Читать статью
Наш канал в Макс
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
HttpClient в Spring 7: замена FeignClient или нет?
За последние несколько лет для вызова внешних API в каждом втором (если не первом) проекте я видел одну и ту же картину:
👍2🔥1🎄1
Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Стандартные алгоритмы даунсемплинга хорошо работают с линейными графиками. На scatter они теряют до 60% визуально значимых данных. Показываем, как двумерное прореживание решает задачу, которую одномерные методы фундаментально не могут.
Читать статью
Наш канал в MAX🟪
Стандартные алгоритмы даунсемплинга хорошо работают с линейными графиками. На scatter они теряют до 60% визуально значимых данных. Показываем, как двумерное прореживание решает задачу, которую одномерные методы фундаментально не могут.
Читать статью
Наш канал в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Вот что видит пользователь, когда мы рисуем график давления в скважине за два года — 50 миллионов точек:
👍2🔥2
Вайб-код для настоящих инженеров: старые практики в новых реалиях
Итак, вопреки утверждениям скептиков (среди которых не так давно был и я) ИИ-разработка с двух ног влетела в настоящую промышленную эксплуатацию, и мем уже совсем не тот: не джун теперь роняет прод, а нейросеть убивает статистику доступности гитхаба, амазона, Cloudflare и даже самой мекки вайб-кодинга — сервисов Anthropic и OpenAI.
Читать статью
Наш канал в MAX🟪
Итак, вопреки утверждениям скептиков (среди которых не так давно был и я) ИИ-разработка с двух ног влетела в настоящую промышленную эксплуатацию, и мем уже совсем не тот: не джун теперь роняет прод, а нейросеть убивает статистику доступности гитхаба, амазона, Cloudflare и даже самой мекки вайб-кодинга — сервисов Anthropic и OpenAI.
Читать статью
Наш канал в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Вайб-код для настоящих инженеров: старые практики в новых реалиях
Итак, вопреки утверждениям скептиков (среди которых не так давно был и я) ИИ-разработка с двух ног влетела в настоящую промышленную экспл..
👍2🔥1😱1
Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise
Что делать, если синхронные REST-вызовы превращают ваши микросервисы в карточный домик? Пора вспомнить проверенные временем паттерны обмена сообщениями. В этой статье разбираем архитектуру Pipes and Filters, Content-Based Router и Idempotent Receiver — те самые кирпичики, на которых держатся надёжные системы. Схемы, best practices для проектирования устойчивых интеграций для Enterprise-разработки.
Читать статью
Наш канал в MAX🟪
Что делать, если синхронные REST-вызовы превращают ваши микросервисы в карточный домик? Пора вспомнить проверенные временем паттерны обмена сообщениями. В этой статье разбираем архитектуру Pipes and Filters, Content-Based Router и Idempotent Receiver — те самые кирпичики, на которых держатся надёжные системы. Схемы, best practices для проектирования устойчивых интеграций для Enterprise-разработки.
Читать статью
Наш канал в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise
Всем привет, меня зовут Сергей Прощаев. Я Tech Lead и руководитель направления Java | Kotlin разработки в FinTech, а также преподаю на ку..
🔥2👍1
AI Gateway для микросервисов: гайд по интеграции LLM в 2026
В микросервисной архитектуре LLM быстро превращаются из удобного инструмента в отдельный источник рисков: растут счета за токены, появляются задержки, дублируются запросы, а сервисы начинают зависеть от внешних моделей напрямую.
В статье разбираем, как спроектировать AI Gateway — инфраструктурный слой для централизованной маршрутизации, кеширования, лимитов, observability и отказоустойчивости при работе с AI‑моделями.
Читать статью
Наш канал в MAX🟪
В микросервисной архитектуре LLM быстро превращаются из удобного инструмента в отдельный источник рисков: растут счета за токены, появляются задержки, дублируются запросы, а сервисы начинают зависеть от внешних моделей напрямую.
В статье разбираем, как спроектировать AI Gateway — инфраструктурный слой для централизованной маршрутизации, кеширования, лимитов, observability и отказоустойчивости при работе с AI‑моделями.
Читать статью
Наш канал в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
AI Gateway для микросервисов: гайд по интеграции LLM в 2026
Всем привет, меня зовут Сергей Прощаев. В этой статье расскажу про одну из самых горячих тем 2026 года — интеграцию AI/ML как самостоятел..
👍1🔥1
WebFlux vs Virtual Threads: что происходит при 2000 RPS
Всем привет! Меня зовут Александр, и сегодня я расскажу о результатах перевода учебного проекта со Spring WebFlux и Netty на Spring MVC и Tomcat с виртуальными потоками и проверки обоих вариантов под нагрузкой в 2000rps.
Читать статью
Наш канал в MAX🟪
Всем привет! Меня зовут Александр, и сегодня я расскажу о результатах перевода учебного проекта со Spring WebFlux и Netty на Spring MVC и Tomcat с виртуальными потоками и проверки обоих вариантов под нагрузкой в 2000rps.
Читать статью
Наш канал в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
WebFlux vs Virtual Threads: что происходит при 2000 RPS
Всем привет! Меня зовут Александр, и сегодня я расскажу о результатах перевода учебного проекта со Spring WebFlux и Netty на Spring MVC и..
🔥2👍1