Состояния гонки (Race conditions) являются одними из самых коварных и неуловимых ошибок программирования. Как правило, они вызывают ошибочные и загадочные сбои, часто после того, как код был запущен в работу. Хотя механизмы конкурентности Go упрощают написание чистого конкурентного кода, они не предотвращают состояние гонки. Требуется осторожность, усердие и тестирование. И инструменты могут помочь.
Я на сайте dev.to, буквально в мае, видел статью про машину состояний при написании игр на Golang’е. Только статья на английском языке, сразу говорю, но она очень интересная – советую к прочтению.