







Every concurrency API needs a way to run code concurrently. Here's some examples of what that looks like using different APIs:
Concurrency is not Parallelism by Rob Pike
Preserving Order in Concurrent Go Apps: Three Approaches Compared
Concurrency breaks ordering by design, but sometimes we need both. Explore three methods to preserve order in concurrent Go applications, from standard ReplyTo channels to sophisticated permission passing, with benchmarks and real-world trade-offs.

Concurrency in Go
Thorsten Ball - Why threads can't fork
There is an interesting thread on the Go issue tracker about daemonizing processes. Most of the thread is not about daemonizing processes though, but more about why Go has no Fork() function which you can call directly in your code. The first time I read through it I was wondering and saying to myself: “Yeah, why is there no Fork()? It surely can’t be that hard to implement.” After all you can already call system calls with the syscall package. As I read more and more I realized that the problem is not implementing Fork() per se, but rather implementing Fork() to work safely in a multi-threaded environment, which most Go programs are. So I tried to find out why.
Go sync.Map: The Right Tool for the Right Job
Go’s sync.Map isn’t a magic bullet for all concurrent map needs. It’s got some good tricks up its sleeve, like handling reads without locking, but it’s not always the best choice. This article dives into how sync.Map works under the hood, from its two-map system to the bottom line of expunged entries.

Go Web Programming
Build scalable, high-performance web apps in Go with modern design principles.

How HTTP/2 Works and How to Enable It in Go
HTTP/2 solves head-of-line blocking at the application layer by multiplexing multiple streams over a single TCP connection. While HTTP/1.1 requires requests to be processed sequentially, HTTP/2 allows parallel processing through independent streams, each with its own ID. The Go standard library supports HTTP/2 out of the box when using HTTPS, and with some configuration, it can work over plain HTTP too

The Go Programming Language
Go is an open source programming language that makes it simple to build secure, scalable systems.

Optimizing Protocol Buffers in Go Applications
If you’ve ever wondered why your Go service is eating memory like it’s at an all-you-can-eat buffet, chances are you haven’t optimized your Protocol Buffers usage. I’ve been there, watching heap profiles with the kind of horror usually reserved for checking your bank account after a night out. But here’s the good news: Protocol Buffers in Go can be wickedly fast and memory-efficient when you know the tricks. Let me walk you through the optimization techniques that transformed my services from memory-hungry monsters into lean, mean, serialization machines.

Building a simple load balancer in Go
Load balancers are crucial in modern software development. If you've ever wondered how requests are...

Making SQLite faster in Go
Make sqlite faster with a connection pool and prepared statements.
New iterators in Go 1.23
The Go language now supports standardized iterators. An iterator is an object that progressively provides access to each item of a…

A Conflict-Free Replicated JSON Datatype
Many applications model their data in a general-purpose storage format such as JSON. This data structure is modified by the application as a result of user input. Such modifications are well understood if performed sequentially on a single copy of the data, but if the data is replicated and modified concurrently on multiple devices, it is unclear what the semantics should be. In this paper we present an algorithm and formal semantics for a JSON data structure that automatically resolves concurrent modifications such that no updates are lost, and such that all replicas converge towards the same state (a conflict-free replicated datatype or CRDT). It supports arbitrarily nested list and map types, which can be modified by insertion, deletion and assignment. The algorithm performs all merging client-side and does not depend on ordering guarantees from the network, making it suitable for deployment on mobile devices with poor network connectivity, in peer-to-peer networks, and in messaging systems with end-to-end encryption.
Learn Go by Building a Command Line Todo App | Barbarian Meets Coding
Learn the Go programming language by building a test-driven command line todo application

More Actors with Tokio
In spring 2021, when I was first submerging into tokio, a colleague and friend mentioned I should ingest this article: Actors with Tokio by Alice Ryhl. And, did I ingest it. To summarize, the article proposes an architectural style which relies on message passing (channels) and inherent parallelism (tasks) as well as concurrency (via async/.await) to neatly and safely structure applications dealing with I/O. But really, go read the article.
Hey we shipped a new Go code generator for lexicon types. Been in production for a couple weeks now 🥳 Based off of @bnewbold.net's cobalt work and @hypha.coop's go-dasl for DRISL serialization. Copies indigo's echo server stub generation verbatim. 100% compatible with @atproto/lex lockfiles.
GitHub - streamplace/glex: Go code generation for atproto. glex: enter the repo
github.com