#​376 — August 27, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Go 1.17 Released — Unfortunately, my brief vacation was.. poorly timed, given that a big Go release dropped just as it begun! If it has flown under your radar till now, though, here it is. Here are the full 1.17 release notes, but improvements and changes include:

The Go Team

Tidying Up the Go Web Experience with go.dev — Back in 2019 the Go team unveiled go.dev which was intended to be a new central place for Go related information, although golang.org has lived on till now. The plan, however, is to move everything over to the new domain. This has been mildly controversial, however, as many people prefer the classical homepage.

Russ Cox

An Operations-Free Document Database with ACID Transactions — Fauna combines the schema flexibility that’s provided by document databases with ACID compliant transactions. Quickly integrate Fauna into your applications with our Data API and leave scaling, sharding and all other operations to Fauna.

Fauna sponsor


Error Stack Traces in Go with x/xerror“Go’s last standing major weakness is error handling.” Not sure everyone would agree with that, but the author does go on to show how the x/xerror package gives better context to errors than the core package.

Brandur Leach


100% Remote: Deutschsprachiger Golang Developer (m/w/d) Gesucht — Adtech basierend auf Golang, MySQL, Clickhouse, Redis, ein Umzug von Baremetal  in die Cloud: wir haben viel vor. Bist du dabei?
Fireball Labs GmbH

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.

Find Tech Jobs with Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.

The Underutilized Usefulness of sync.Once — A fantastic example of why you might use this to tidy up code where an expensive single operation might be cached for future runs.

Jason Chu

Using Go Generics — Scott applies generics (in the 1.18 tip) to a real-world problem to find out first-hand the benefits, disadvantages, along with what he did and didn’t like about them.

Scott White

Building Production Ready REST APIs in Go

Elliot @ TutorialEdge.net sponsor

Build Scalable Applications with AWS Lambda and Go — A straightforward overview of how and why to consider the serverless approach for Go apps.

Ariel Orozco

Brooks, Wirth and Go — A great read on two giants in the software industry, their maxims and beliefs, how far we’ve strayed from them, ending with a nice word about the language that is “stuck in the 70s.”

Fredrik Holmqvist

🛠 Code & Tools

Gateway: A Drop-In Replacement for net/http for AWS Lambda and API Gateway — Replace ListenAndServe with gateway.ListenAndServe and this makes it easier to get existing net/http facing code running with API Gateway and AWS Lambda.


Acmez 1.0: Premier ACME Client Library for Go — This client is meant to be built into servers (not a CLI) and is inspired by the particular requirements of Caddy.

Matt Holt

sqlc 1.9: Generate Type Safe Go(lang) from SQL — You write SQL queries, run sqlc to generate code and interfaces for those queries, then write Go code that calls the aforementioned code. v1.9.0 adds support for views, pgx/v4, and subqueries in SELECTs.

Kyle Conroy

ReGit: A Tiny Git-Compatible Git Implementation in Go — Mostly implemented as an experiment for learning purposes.



GLAuth 2.0 – LDAP authentication server.
GitHub CLI 2.0 – Official GitHub CLI client.
rqlite 6.2.0 – Distributed database built on SQLite.
Spotify 2.0 – Go wrapper for Spotify's Web API.
slides 0.5.0 – Terminal based slidedeck tool.
Go Micro 3.6.0 – Distributed systems framework.