Golang + Websoket. Как получать изменения от других сервисов?
Была похожая задача: Вместо велосипедостроения воспользовался готовым инструментом:
centrifugo

Написан на go, есть клиенты под все популярные языки. Управляется по rest api и grpc.
Еще есть реализация socket.io для golang.

Но для прокачки скилов я бы все равно порекомендовал кастомную реализацию асинхронного обмена сообщениями поверх WebSocket.

Также для получения событий (только от сервера к браузеру, он же взаимодействует как обычно по http) еще есть такая технология как Server-sent events. В связке с http2 вообще огонь.