RU

Cache is hard — почему инвалидация кэша — это проблема согласованности, а не производительности

Кэш часто воспринимают как простой способ ускорить систему: положили данные ближе к приложению — получили быстрый ответ. Но н…

кэшированиеинвалидация кэшасогласованность данныхраспределённые системыRedisPostgreSQLCDCKafkaTTLвысоконагруженные системы
Habr
RU

WHERE превращает ваш LEFT JOIN в INNER JOIN. И никто вам об этом не скажет

LEFT JOIN считается одной из самых безопасных конструкций в SQL — пока один фильтр в WHERE тихо не превращает его в INNER JOIN . О…

LEFT JOININNER JOINSQLPostgreSQLNULLWHEREONантиджойноптимизация запросовбазы данных
Habr
RU

Версионирование таблиц репозитория метаданных Sigla Vision

Продолжаем серию публикаций «Адаптивное администрирование Sigla Vision» .   В предыдущей статье мы изложили основную концепцию построения об…

Системное администрированиевизуализация данныхsqlанализ и проектирование системBusiness IntelligenceFineBISigla Visionдашбордыбизнес-аналитикаPostgreSQL
Habr
RU

Один за всех: как я в одиночку тащу фуллстек-проект, который незаметно разросся до соцсети

Начиналось как «сделаю себе сайтик про кино на пару выходных». Закончилось каталогом на десятки тысяч карточек, лентой, профилями, рейтингами, совмест…

пет-проектфуллстексоло-разработкаFastAPINext.jsPostgreSQLвыгорание
Habr
RU

SUM() OVER (ORDER BY...) считает не то, что вы думаете: кадр оконной функции

Привет, Хабр! SUM() OVER (ORDER BY ...) часто выглядит как очевидный способ посчитать нарастающий итог, пока в данных не появляются оди…

SQLоконные функцииwindow functionsROWSRANGEPostgreSQLнарастающий итогLAST_VALUEкадр окнааналитические запросы
Habr
RU

CTE в PostgreSQL: как писать сложные запросы просто

Запутались в многоэтажных SQL‑запросах? Обобщённые табличные выражения (CTE) — тот инструмент, который превращает лапшу из JOIN и подза…

PostgreSQLSQLCTEWITHобобщенные табличные выражениясложные запросыподзапросыоптимизация SQLрекурсивные запросычитаемый SQL
Habr
RU

Как я сделал “Авиасейлз для логистики”: агрегатор заявок из 16+ источников

В логистике проблема часто не в том, что нет данных. Проблема в том, что данные разбросаны по разным местам. Одни заявки лежат во внутренней системе, …

логистикаавтоматизацияпарсинг данныхагрегатор заявокETLPostgreSQLPythonGoogle SheetsFastAPI
Habr
RU

ASOC на коленке: как я навайбкодил замену DefectDojo для своих задач с обогащением из БДУ ФСТЭК

Когда я начал разбираться, чем в open source можно закрыть задачу ASOC / Vulnerability Management, выбор оказался довольно грустным. По сути единствен…

ASOCAppSecDevSecOpsDefectDojovulnerability managementБДУ ФСТЭКon-premiseair-gappedGoPostgreSQL
Habr
RU

Почему ваше приложение тормозит и как мы это исправили с помощью PowerSync

Как мы ушли от архитектуры request-wait-response, перенесли чтение данных на фронтенд через локальную SQLite и сделали интерфейс быстрее с помощью Pow…

local-firstPowerSyncSQLitePostgreSQLсинхронизация данныхoffline-firstархитектура приложенийbackendмобильные приложенияUX
Habr
RU

Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения

Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реали…

APIJavaScriptJavaAndroidStack OverflowGitБезопасностьОпросIDESQLiOSРаботаTorGitHubБазы данныхHRReactDockerMITАлисаRedisQAМессенджер5gПриложениеВзломdevСервер1CPostgreSQLGrafanaСтатьи
Tproger