Designing Go APIs with channels
inconshreveable.com