Dan Richards

Dan Richards Web Developer - Bournemouth

Goroutines, Channels and WaitGroups

Recently I came across a scenario where I needed to execute some long running functions and capture the results for later use. Of course to reduce the latency of this code I ran the functions concurrently with goroutines and a waitgroup. The kicker here was that to return the results from the goroutines I had to use channels and getting the complete data from the channel was more complex than I thought.

Reliable, scalable and language agnostic microservices with protocol buffers and gRPC.

Unless you’ve been living under a rock (or a monolith, badum tish!) for the past couple of years, you will have heard the term microservices at some point. Chances are you, or someone you know, are developing microservices. Sure it can be deceptively simple to get started, choose a bounded context, knock up a REST API and away you go, right? Well, no.

Google Cloud NEXT '17 - Building High Performance Microservices with Go, Kubernetes and gRPC

Microservice Performance Gotchas

  • Slow data serialization
  • Network contention
  • High per-process overhead

Google Cloud NEXT '17 - Authenticating Service-to-Service Calls with Google Cloud Endpoints


  • Authentication vs authorization
  • Scenarios: When to use service-to-Service auth
    • Mobile apps
    • Microservices
    • Cloud to cloud