goaxel: use channel instead of sync waitgroup