make docker
internal - содержит всю внутреннюю логику приложения. Сервис библиотека создается согласно принципу двухуровневой архитектуры (уровень базы данных и транспортный).
internal/app - инстанс сервиса, строится логика и формируется run-метод, вызываемый из cmd/main.
internal/db - взаимодествия с базой данных MySQL
internal/db/(authors||books) - манипуляции с сущностями книга и автор в плоскости БД.
internal/db/transaction - чтобы соблюдать принципы атомарности, согласованности и изолированности при работе с MySql, сервис обработывает sql-запросы в рамках транзакции. Методы query, query row и execute вынесены в данный файл, чтобы следовать принципу разработки DRY, при написании логики в файле манипуляции сущностями. Также, считаю важным уточнить, что в работе с исполняемыми запросами используются параметризованные аргументы, чтобы недопустить возможность sql-инъекции со стороны клиента.