Skip to Content
How-toОбзор

How-to

Пошаговые рецепты для типовых задач PR-автора. Каждая страница — готовая последовательность действий, со ссылками на conventions/patterns для reference-деталей.

Если ты только учишь стек — сначала ../onboarding/01-setup и ../onboarding/02-first-pr, потом возвращайся сюда.

Daily ops (стандартные PR)

  • add-http-endpoint — добавить новый HTTP-endpoint: DTO, handler, service, тесты, OpenAPI.
  • add-kafka-event — добавить новое Kafka-событие: payload, envelope, outbox-publisher, consumer-handler.
  • add-new-service — завести новый сервис от нуля до зелёного CI и первого make bootstrap.
  • onboard-new-dependency — как добавить новую Go-зависимость: vetting, лицензия, govulncheck, SBOM, PR-шаблон.

Data (БД и миграции)

  • add-migration — добавить миграцию: expand-contract, advisory lock, индексы, rolling-deploy.
  • rollback-migration — откатить миграцию в prod через forward-fix. Стратегии A/B/C, восстановление данных, incident log.

Security

  • rotate-jwt-key — ротация HMAC/JWT-ключа без downtime: PRIMARY/PREVIOUS, окно, last resort (instant rotation).

Resilience

  • handle-redis-outage — поведение сервиса при недоступном Redis: fail-open/closed per operation, /readyz, timeouts, stale fallback.

Observability (debugging и метрики)

  • add-metric-and-alert — объявить Prometheus-метрику, подключить alert-rule, завести dashboard.
  • debug-outbox-lag — runbook: сработал alert на outbox_forwarder_lag_seconds, как локализовать и починить.
  • read-logs — LogQL-шпаргалка, типовые запросы, correlation с trace’ами.
  • read-traces — Tempo / OpenTelemetry, distributed flow, correlation с logs и metrics.
  • profile-servicepprof для CPU/memory/goroutine profiling, continuous profiling.
  • load-test — k6-сценарии, интерпретация результатов, baseline SLA, где запускать, red flags.

Правило

Если делаешь задачу, которой нет в списке выше, — скорее всего, нужен новый how-to (или расширение существующего), а не «разовая» реализация. Открой PR, добавь файл в соответствующую группу.

Last updated on