All Stories

Custom Network Programming with Epoll and Kqueue in Go

Go already has a netpoll – know why you would reimplement it

Scaling ActionCable to 10k Active WebSockets with Redis Pub/Sub

WebSockets look like the same stack as HTTP and are, in every way that matters, the opposite. An HTTP request occupies a thread for a hundred milliseconds and leaves. A...

Structured Concurrency in Go: Managing Subtask Lifecycles with golang.org/x/sync/errgroup

sync.WaitGroup answers one question: “is everyone done?” It cannot tell you someone failed, and it certainly cannot stop the others when one does. For fan-out over shards, partitions, or upstreams...

gRPC Client-side Load Balancing in Go: Implementing Custom Resolvers

gRPC is built on HTTP/2, and HTTP/2 wants a few long-lived connections, not many short ones. Put a classic L4 or L7 load balancer in front and you have re-introduced...