Golang HTTP синхронизация

Пишу Restful сервер с использованием патернов network_api -> data(UseCase->Repository). Так как все http хендлеры обрабатываются параллельно, то каким образом корректно протянуть зависимости репозиториев и use_case объектов в слой network_api ? То есть это будут синглтоны или же их нужно создавать для каждого отдельного request? Потому как сейчас я боюсь за доступ к общим ресурсам. Например, use_case при загрузке читает json конфигурацию и в дальнейшем к ней обращается по многим путям из слоя nwtwork_api.

Есть какие нибудь best practices?


Ответы (1 шт):

Автор решения: prospero78su

Всё зависит от того, какие требования предъявляются к вашим данным (т.е именно модель данных ДИКТУЕТ требования к архитектуре). Если ваши данные терпимы к параллельному одновременному доступу -- тогда не замарачивайтесь. Если же нельзя одновременно из нескольких потоков обращаться к менеджеру данных -- тогда вводите глобальную блокировку. Фактически, такой глобальной блокировкой будет являться единственное соединение к базе данных.

→ Ссылка