a go implement message queue