KNOWLEDGE / 01
Инженерные
заметки.
Практические материалы о backend-разработке, архитектуре и эксплуатации Go-сервисов: Kafka, PostgreSQL, границы сервисов и доставка событий.
- СТАТЬЯ ↗
Шардирование PostgreSQL под нагрузкой после исчерпания более дешёвых решений
Как доказать необходимость шардирования PostgreSQL, выбрать устойчивый ключ и заранее оценить маршрутизацию, межшардовые операции и перенос данных.
- СТАТЬЯ ↗
Состояния и компенсации в SAGA-оркестраторе между микросервисами
Как хранить состояние SAGA, различать отказ и неизвестный исход и управлять компенсациями, когда команды повторяются, а ответы приходят после тайм-аута.
- СТАТЬЯ ↗
Эволюция gRPC-контрактов без синхронного релиза всех сервисов
Как менять protobuf-схемы и семантику gRPC-методов при независимых релизах: совместимые поля, окно миграции, проверки контрактов и безопасное удаление.
- СТАТЬЯ ↗
Наблюдаемость асинхронного потока от consumer lag до бизнес-инварианта
Как связать метрики Kafka, outbox, consumer и доменного процесса, чтобы отличать временное отставание от потери события и скрытой остановки обработки.
- СТАТЬЯ ↗
Надёжные интеграции через Kafka без иллюзии exactly-once доставки
Практическая модель интеграции через Kafka: transactional outbox, идемпотентный consumer, обработка повторов, DLQ и метрики, которые показывают потерю событий.
- СТАТЬЯ ↗
PostgreSQL под реальной нагрузкой: планы, индексы и цена решений
Практический разбор диагностики PostgreSQL в production: как связать медленный запрос с планом, подобрать индекс и учесть блокировки, запись и эксплуатацию.
- СТАТЬЯ ↗
Границы микросервисов, которые не превращают систему в распределённый монолит
Практический подход к границам микросервисов: владение данными, бизнес-инварианты, синхронные зависимости и признаки распределённого монолита.
- СТАТЬЯ ↗
Transactional outbox в Go с атомарной записью и управляемыми повторами
Как связать изменение данных в PostgreSQL с публикацией в Kafka, пережить повторы и сбои relay-процесса и не выдавать at-least-once за exactly-once.
- СТАТЬЯ ↗
Offline-first обмен с терминалами и доставка событий при плохой сети
Как спроектировать очередь на устройстве, идемпотентный приём и сверку состояния, чтобы разрывы связи и повторы не превращались в потерянные операции.