Building a Distributed Task Queue in Go