Go

Плагины Picodata на Rust: pike, миграции и blue-green

Плагины Picodata на Rust: pike, миграции и blue-green

Когда SQL не хватает, Picodata расширяют плагином на Rust: сервис внутри кластера со своим жизненным циклом, миграциями схемы и обновлением версий без остановки. Разбор на рабочем плагине — от скелета через pike до blue-green, включая места, где всё это ведёт себя не так, как ожидаешь

«Доступна новая версия сайта»: как вкладка узнаёт о выкладке и почему не перезагружается сама

«Доступна новая версия сайта»: как вкладка узнаёт о выкладке и почему не перезагружается сама

Сайт VOG перестал перезагружать страницу при переходах, и вкладка стала жить часами на коде, загруженном до выкладки. Как вкладка узнаёт о новой сборке почти без лишней нагрузки на сервер — из заголовков обычных ответов и редкого опроса, — почему обновление предлагается кнопкой, а не делается само, и как одна строка ?v= дала на странице две копии React

Установщик на Go для Windows-клиента: как VOG ушёл от MSI и redist

Установщик на Go для Windows-клиента: как VOG ушёл от MSI и redist

Старый MSI-установщик VOG перестал ставиться на свежие Windows из-за распространяемого пакета Visual C++. Как вместо него появился загрузчик на Go — один статический файл без cgo и без единой сторонней зависимости, с окном на голом WinAPI, модульной установкой, откатом версий, двумя слоями подписей Ed25519 и честными отношениями с антивирусами

Логи и корреляция: структурные логи, trace_id и Loki

Логи и корреляция: структурные логи, trace_id и Loki

Структурный лог и коррелируемый лог — не одно и то же: в Go trace_id в stdout приходится добавлять руками, в Java его кладёт агент. Разбираем модель Loki, замеряем последствия высокой кардинальности (2 стрима против 1202), выясняем, почему на OTLP-логах не работает привычный json-парсер, и ловим ошибку корреляции, которая проявляется у каждого шестнадцатого трейса.

Распределённый трейсинг end-to-end: контекст через HTTP, БД и брокеры

Распределённый трейсинг end-to-end: контекст через HTTP, БД и брокеры

Распределённый трейсинг держится на одном: контекст должен пережить каждую границу. Разбираем W3C trace context дословно с провода, проброс через HTTP, PostgreSQL и NATS, два воспроизводимых разрыва трейса, head- и tail-семплинг с фактическими долями и две ловушки TraceQL, которые дают правдоподобные неверные числа.

Picodata и PostgreSQL: где кончается совместимость

Picodata и PostgreSQL: где кончается совместимость

PostgreSQL-протокол — основной способ работы с Picodata: psql, pgx и psycopg подключаются к ней тем же кодом, что к PostgreSQL. Но совместимость частичная, и граница проходит не там, где ожидаешь. Живая матрица пяти клиентов против 59 SQL-конструкций, поведение pg_dump и мигратора, и почему у Picodata собственный JDBC-драйвер

Инструментирование OpenTelemetry в Go и Java: traces, metrics, logs

Инструментирование OpenTelemetry в Go и Java: traces, metrics, logs

Как инструментировать сервисы через OpenTelemetry: разделение SDK и API, три сигнала, auto- и manual-инструментализация, spans и context propagation, экспорт в Collector по OTLP. Практика на Go (SDK + slog-bridge) и Java (OTel-агент), с замерами накладных расходов на живом стенде.

VOG — Vinco Online Games: почти 30 лет настольных игр онлайн, от Windows-клиента до браузера

VOG — Vinco Online Games: почти 30 лет настольных игр онлайн, от Windows-клиента до браузера

Закулисье vogclub.com от разработчика, который работал над ним в 1999–2003 годах и в 2021-м забрал проект за шаг до закрытия: отдельные Windows-программы на vog.ru, оболочка VOG Shell, ставка на ActiveX, долгая пауза и перезапуск 2026 года на Go и Kubernetes с веб-клиентом. Первая статья серии о технологиях VOG