Всем привет! Хочу рассказать, как мы небольшой командой проектировали кэш поиска отелей для сервиса по бронированию отелей и почему за полтора года прошли путь от Infinispan к managed Redis а затем к Postgres. По стеку java-21, spring-boot-3, 1 вендор отелей, расчетная нагрузка 1000 RPS и 10M запросов в сутки.
Рубрика «java»
От Infinispan до Postgres на 1 ТБ: эволюция кэша поиска отелей
2026-05-03 в 16:15, admin, рубрики: infinispan, java, PostreSQL, redis, spring boot, бронирование отелей, кэширование, миграцияКак я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения
2026-05-03 в 14:46, admin, рубрики: e2ee, java, Signal Protocol, spring boot, WebCrypto, WebSocket, X3DH, криптография, мессенджер, шифрованиеПривет.
Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.
В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза “end-to-end encryption”? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?
Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.
GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java
2026-05-03 в 8:15, admin, рубрики: backend, document generation, graphcompose, java, layout engine, open source, pagination, PDF, PDFBox, visual regressionС чего всё началось: проблема, которая бесила
В мире Java для генерации PDF исторически есть три лагеря:
-
Низкоуровневые рисовалки — iText, PDFBox. Быстро, мощно, но ты буквально пишешь на бумаге пиксели координатами. Любой инвойс превращается в 200 строк
contentStream.beginText() / setFont() / newLineAtOffset(...). А потом приходит дизайнер и говорит: «отступ должен быть 14, а не 12». -
Шаблонные движки — JasperReports, OpenPDF. Удобно для отчётов, но XML-шаблон — это отдельный язык, отдельный инструментарий, отдельная боль на ревью. Изменения логики растекаются между Java-кодом, JRXML и DTO.
-
HTML→PDFЧитать полностью »
Новый дачный сезон с Java, управлением сервера без интернета и AI моделью
2026-04-28 в 6:46, admin, рубрики: AI, docker, e3372, java, offline solutions, sms gateway, автономность, дача
Всем привет! Меня зовут Александр, это моя первая статья, хочу поделиться с вами историей создания программно-аппаратного open source решения для поддержки и управления сервисами в отсутствии интернета.
IT: от сокращения до оффера. Полезные заметки на полях
2026-04-25 в 13:30, admin, рубрики: java, поиск работы, резюме, собеседованиеАвтор этих строк (Senior Java Developer) попал под сокращение, потратил месяцы на поиск новой работы и получил, наконец, свой долгожданный оффер. Хочу поделиться полезными для коллег по IT-цеху заметками на полях. Сразу скажу, что у них есть своя специфика, ибо не все из вас разрабы, джависты и сеньоры, но уж простите, чем богат - тем и готов поделиться.
Echo Layer: как я пытался встроить приватность в обычную клавиатуру
2026-04-20 в 19:23, admin, рубрики: java, клавиатура, криптография, мессенджеры, открытый исходный код, разработка приложенийПривет! Меня зовут Артур Валиев, и я разработчик небольшого мобильного приложения с названием «Echo Layer».
Cказ о том, как мы с Oracle на PostgreSQL переехали
2026-04-19 в 17:15, admin, рубрики: CDC, Debezium, java, kafkaconnect, oracle, postgresql, миграция базы данных, миграция данных
Исходные условия и цель переезда
Привет! Меня зовут Даша Александрова, я Java-разработчик. Хочу поделиться опытом миграции данных из Oracle в PostgreSQL без простоя сервисов.
Причина миграции - импортозамещение.
Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы
2026-04-15 в 11:43, admin, рубрики: AI Security, backend, guardrails, jailbreak, java, langchain4j, llm, prompt injection, spring ai, безопасность llmSystem prompt — это просьба. Guardrails — это принуждение.
1. Введение
Когда я впервые внедрял LLM в production-сервис, схема безопасности выглядела примерно так: написать хороший system prompt, поставить галочку «мы всё предусмотрели» и жить дальше. Жизнь не дала долго наслаждаться этим спокойствием — первый же тест показал, что пользователи довольно быстро находят способы заставить модель «забыть» всё, что мы написали в системном промпте.
Проблема фундаментальная: system prompt — это инструкция, которую LLM старается выполнить, но не обязанЧитать полностью »
HttpClient в Spring 7: замена FeignClient или нет?
2026-04-12 в 10:15, admin, рубрики: feignclient, httpclient, java, openapi, restclient, spring, spring boot, webclient, микросервисыЗа последние несколько лет для вызова внешних API в каждом втором (если не первом) проекте я видел одну и ту же картину:
-
RestTemplate -
или
FeignClient
Причём Feign почти всегда шёл в связке с OpenAPI: сгенерировали клиент, получили интерфейсы и не думаем о реализации. Удобно, красиво, привычно.
Но потом в Spring появился нативный декларативный HttpClient, который работает поверх RestClient / WebClient
И у меня возник вопрос: а можно ли им заменить Feign, не потеряв удобство?
Спойлер: да, можно и будет даже удобнее.
Откуда вообще взялся HttpClient
Идея, на самом деле, очень простая.
Читать полностью »
