How to Manage Database Timeouts and Cancellations in Go

One of the great features of Go's database/sql package is that it's possible to cancel database queries while they are still running via a context.Context instance. On the face of it, usage of this functionality is quite straightforward (here's a basic example). But once you st...

Getting Started With Dgraph and GraphQL+-

Introduction I have spent a career building business applications that work with databases, starting with SQL and then moving to No-SQL. I’ve been curious how Graph databases work and how to build applications with them. It seems the sweet spot for a Graph database is when your...

Getting Started With Dgraph and GraphQL+-

Introduction I have spent a career building business applications that work with databases, starting with SQL and then moving to No-SQL. I’ve been curious how Graph databases work and how to build applications with them. It seems the sweet spot for a Graph database is when your...

Modules Part 06: Vendoring

Series Index Why and What Projects, Dependencies and Gopls Minimal Version Selection Mirrors, Checksums and Athens Gopls Improvements Vendoring Introduction It’s no secret that I am a fan of vendoring when it’s reasonable and practical to use it for your application projects....

what.Happens - a debug logging package for developers only

Package what provides some handy debug-logging functions that can be enabled and disabled via build flags. No more information leaks in your production code!

Modules Part 05: Gopls Improvements

Series Index Why and What Projects, Dependencies and Gopls Minimal Version Selection Mirrors, Checksums and Athens Gopls Improvements Vendoring Prelude This is a guest post written by Rohan Challa, a member of the Go team working on gopls. This document is a follow up to Bill Ken...

Docker Images : Part III - Going Farther To Reduce Image Size

Series Index Reducing Image Size Details Specific To Different Languages Going Farther To Reduce Image Size Introduction In the first two parts of this series, we covered the most common methods to optimize Docker image size. We saw how multi-stage builds, combined with Alpine-ba...

GopherCon 2020 Update

It’s been a few weeks since our first release about GopherCon and COVID-19, so we wanted to share an update. You all are the backbone of this conference and so important to us!

Leader Election inside Kubernetes

Ever needed a simple leader election mechanism on something that will run on a Kubernetes cluster? There’s an easy way to do that! A couple of days ago I was working on an app that needed to do some work from time to time, but only in a single replica. Easy thing to do if...

go test -v streaming output

The testing package is one of my favourite packages in the Go standard library, not just because of its low noise approach to unit testing, but, over the lifetime of Go, it has received a steady stream of quality of life improvements driven by real world usage. The most recent ex...