Toolkit
Toolkit · pkg/
Первый шаг при создании проекта — подготовить инструментарий. До того как писать бизнес-логику, вы оборачиваете технологии которые будете использовать.
Что вы делаете на этом шаге
Вы не реализуете бизнес-логику. Вы создаёте обёртки над технологиями: базой данных, очередями, внешними API, кешем — чем угодно что нужно проекту.
Toolkit не импортирует internal/. Он не знает что такое User или Task. Он просто умеет сохранять, находить, публиковать, кешировать. Написали один раз — переносите в любой проект без изменений.
Services
Шаблонные обёртки над внешними системами. Один сервис — одна технология: repository, rabbit, cache, storage, elastic — что угодно. Каждый сервис — singleton, доступен через геттер из любого слоя. Описывает собственные интерфейсы-контракты — не зависит от internal/.
→ Services — как писать и структурировать
Infra
Инструменты которые нужны самому проекту, а не бизнесу: логгер, трейсер, eventbus, env vars. Инициализируются первыми — логгер нужен всем уже при старте.
→ Infra
Libs
Переиспользуемый код без состояния. HTTP-сервер, парсинг параметров, загрузка конфигов. Не singletons — импортируешь и используешь.
→ Libs
Toolkit готов — у вас есть все инструменты. Можно писать бизнес-логику.
→ Следующий шаг: Realm — бизнес-логика