Портфолио Go-бэкенд-инженера
Максим Золотой · Go Backend
Четыре бэкенд-кейса, разделяющие текущую реализацию и целевую архитектуру, с интерактивным демо и реальным Go-репозиторием.
Текущий инженерный фокус
Текущая веха: HTTP-сервис заказов
Завершить границы HTTP/сервиса: валидация в хендлерах, результаты на уровне сервиса, сопоставление ошибок через errors.Is и тесты хендлеров/сервиса/домена.
Критерии приёмки (план):
- Тесты хендлеров и сервиса покрывают валидацию, делегирование и сопоставление ошибок
- Методы переходов домена покрыты юнит-тестами
Order-сервис сейчас
HTTP-сервис заказов: сегодня — границы, построенные на валидации; цель — полноценное ядро жизненного цикла: машина состояний, идемпотентность, оптимистичная конкурентность и transactional outbox.
Рантайм: Только локальная разработка. Данные демо: моки (MSW)
Сервисы
Четыре бэкенд-кейса. Order в разработке; Auth, Notification и URL-сокращатель — на стадии спецификации с настоящими спецификациями.
Order-сервис
В разработкеHTTP-сервис заказов: сегодня — границы, построенные на валидации; цель — полноценное ядро жизненного цикла: машина состояний, идемпотентность, оптимистичная конкурентность и transactional outbox.
Фокус: Машины состояний, транзакции, идемпотентность, оптимистичная конкурентность, transactional outbox.
Текущая веха: order-http-service
Auth-сервис
ЗапланированСервис учётных данных и сессий для демо-окружения: хранение секретов Argon2id, короткоживущие access-токены, непрозрачные ротируемые refresh-токены и обнаружение повторного использования.
Фокус: Жизненный цикл сессий, ротация и обнаружение повторного использования, RBAC, rate limiting.
Notification-сервис
ЗапланированСобытийный сервис доставки: durable inbox, консьюминг at-least-once, ограниченные воркеры доставки и ретраи с backoff — спроектирован вокруг дубликатов, poison-сообщений и восстановления.
Фокус: Обработка at-least-once, durable-задачи, семантика ретраев/DLQ, ограниченные воркеры.
URL-сокращатель
ЗапланированСервис редиректов, спроектированный вокруг горячего пути: хранение в PostgreSQL, Redis cache-aside с ограниченным фолбэком, per-instance singleflight и воспроизводимые бенчмарки задержек.
Фокус: Redis cache-aside, singleflight, горячий путь, ограниченная аналитика.
Архитектура системы
Один репозиторий, одно развёртывание: статически сгенерированный слой портфолио и интерактивное демо-SPA под /demo/. Цель — четыре независимо владеемых Go-сервиса; сегодня сервис заказов работает локально, демо — на моках.
Читать полный обзор архитектуры →
Инженерные принципы
Границы важнее быстрых решений
Разбор транспортного уровня не попадает в бизнес-логику; сервисы не читают хранилища друг друга. Интеграция — через API и явные контракты.
Честные статусы
Current, target и measured — разные утверждения с разной доказательной базой. Планируемая инфраструктура никогда не выдаётся за развёрнутую.
Проектируйте сценарии отказа
Идемпотентность, оптимистичная конкурентность, доставка at-least-once и границы устаревания кэша — полноценная часть дизайна, а не запоздалая мысль.
Роадмап
Отражает роадмап бэкенд-репозитория. Состояния описывают последовательность, а не проценты.
- Текущая
HTTP-сервис заказов
Завершить границы HTTP/сервиса: валидация в хендлерах, результаты на уровне сервиса, сопоставление ошибок через errors.Is и тесты хендлеров/сервиса/домена.
Сервисы: order
- Далее
Персистентность заказов
Согласовать OpenAPI/DTO, добавить репозиторий/PostgreSQL/миграции и надёжные сценарии создания/чтения.
Сервисы: order
- Далее
Жизненный цикл и конкурентность заказов
Матрица состояний заказ/оплата, отмена/возврат, версионирование, идемпотентность, история и тесты конкурентности.
Сервисы: order
- Далее
Auth-сервис с живым фронтендом
Учётные данные, сессии, ротация refresh/обнаружение повторного использования, RBAC, cookies/CORS/CSRF и реальные браузерные сценарии с демо-фронтендом.
Сервисы: auth
- Далее
События заказов → Notification
Transactional outbox/контракт событий, inbox/jobs, воркеры доставки, ретраи и восстановление.
Сервисы: order, notification
- Далее
Производительность сокращателя
Горячий путь редиректа через БД, фолбэк на Redis, per-instance singleflight, воспроизводимые измерения и ограниченная аналитика.
Сервисы: shortener
- Далее
Эксплуатационные доказательства
Runbook, наблюдаемость, бэкап/восстановление, интеграционный CI и воспроизводимые публичные доказательства.
Сервисы: order, auth, notification, shortener