distributed systems

Tag: distributed systems

19 posts
How I got a rare GitHub t-shirt
permablog icon
permablog

How I got a rare GitHub t-shirt

and why they're getting harder to find

·
Aug 13
·
Request coalescing with Go singleflight
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Request coalescing with Go singleflight

A hot cache key expires and a hundred requests issue the same query at once, saturating the database. Go's singleflight package coalesces those duplicate calls into one. How to wire it up, how to measure whether it's firing, and why per-pod coalescing is usually enough.

·
Jun 26
·
Reading your own writes with WAIT FOR LSN in Postgres 19
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Reading your own writes with WAIT FOR LSN in Postgres 19

PostgreSQL 19's new WAIT FOR LSN command lets a replica block until it has replayed your write. The read-after-write problem it solves, the workarounds it replaces, and what the timeout, status, and mode options are actually for.

·
Jun 12
·
Alessandro Bahgat icon
Alessandro Bahgat
abahgat.com

The nearest hospital to every place on Earth, in a single S2 range query

For every locality on Earth, how far is the nearest hospital? Naively, that's 437 billion great-circle distances. S2 cell indexing reduces it to a single integer range-join: build the index once, and the answer for every place on Earth comes back in seconds. The same primitive also resolves which country, region, and locality each hospital belongs to, in a single pass over one index.

·
May 31
·
Dynamo: Amazon's highly available key-value store
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Dynamo: Amazon's highly available key-value store

Key takeaways from Amazon's 2007 Dynamo paper.

·
Apr 10
·
Stacked log lines considered harmful
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Stacked log lines considered harmful

Why logging at every layer of a service produces noise, and how to log only at the handler level while propagating context from below.

·
Apr 6
·
Testing unary gRPC services in Go
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Testing unary gRPC services in Go

How to test unary gRPC services in Go - handler logic, interceptors, deadlines, metadata propagation, and rich error details - all in-memory with bufconn.

·
Mar 22
·
Is passing user ID through context an antipattern?
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Is passing user ID through context an antipattern?

Why the middleware-to-handler boundary is a special case for context values.

·
Mar 17
·
What belongs in Go's context values?
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

What belongs in Go's context values?

A simple litmus test for when to use context values in Go.

·
Mar 16
·
Wrapping a gRPC client in Go
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Wrapping a gRPC client in Go

How to wrap a generated gRPC client behind a clean Go API so users never have to touch protobuf types or connection management directly.

·
Mar 14
·
In praise of the etcd codebase
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

In praise of the etcd codebase

Why the etcd codebase is my go-to reference for building gRPC services in Go.

·
Mar 13
·
Devtools FM icon
Devtools FM
devtools.fm

Peter van Hardenberg - Ink and Switch, Automerge

Peter van Hardenberg from Ink and Switch discusses the origins of local-first software and Automerge, their CRDT-based sync engine for real-time collaboration.

·
Jan 11
·
Tap compare testing for service migration
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Tap compare testing for service migration

Master shadow testing for large-scale system migrations. Learn to safely rewrite services by comparing outputs between old and new implementations.

·
Dec 12 '25
·
Gateway pattern for external service calls
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Gateway pattern for external service calls

Separate business logic from external service calls using the Gateway pattern. Apply dependency inversion and interface segregation in Go.

·
Aug 2 '25
·
Notes on building event-driven systems
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Notes on building event-driven systems

Deep dive into event-driven architecture patterns. Learn publish-subscribe, CQRS, outbox pattern, eventual consistency, and handling microservice coupling.

·
Sep 20 '24
·
Protobuffed contracts
Redowan's Reflections icon
Redowan's Reflections
rednafi.com

Protobuffed contracts

Define service contracts with Protocol Buffers for non-gRPC systems. Generate serializers, maintain self-documented APIs, and ensure cross-language compatibility.

·
May 9 '24
·
Devtools FM icon
Devtools FM
devtools.fm

Glauber Costa - Forking SQLite and Building a Distributed Database with Turso

Glauber Costa explains how Turso forks SQLite into libSQL to create a distributed database, drawing from his Linux kernel development experience.

·
Feb 18 '24
·
Devtools FM icon
Devtools FM
devtools.fm

Rúnar Bjarnason - Unison

Rúnar Bjarnason introduces Unison, a functional programming language with content-addressed code for distributed systems.

·
Dec 14 '22
·
dev.log icon
dev.log

Construction Ahead, Hard Hats Required

As an undergrad, the last four years have been a journey of realization and final year was no less...

·
Jun 13 '21
·