Dynamo: Amazon's highly available key-value storeKey takeaways from Amazon's 2007 Dynamo paper.Redowan Delowar·Apr 11·3 min readFollowDistributed SystemsDatabases
Stacked log lines considered harmfulWhy logging at every layer of a service produces noise, and how to log only at the handler level while propagating context from below.Redowan Delowar·Apr 7·6 min readFollowGoDistributed SystemsObservability
Testing unary gRPC services in GoHow to test unary gRPC services in Go - handler logic, interceptors, deadlines, metadata propagation, and rich error details - all in-memory with bufconn.Redowan Delowar·Mar 23·13 min readFollowGogRPCTestingDistributed Systems
Is passing user ID through context an antipattern?Why the middleware-to-handler boundary is a special case for context values.Redowan Delowar·Mar 18·3 min readFollowGoAPIDistributed Systems
What belongs in Go's context values?A simple litmus test for when to use context values in Go.Redowan Delowar·Mar 17·4 min readFollowGoAPIDistributed Systems
Wrapping a gRPC client in GoHow to wrap a generated gRPC client behind a clean Go API so users never have to touch protobuf types or connection management directly.Redowan Delowar·Mar 15·7 min readFollowGogRPCAPIDistributed Systems
In praise of the etcd codebaseWhy the etcd codebase is my go-to reference for building gRPC services in Go.Redowan Delowar·Mar 14·3 min readFollowGogRPCDistributed Systems
Tap compare testing for service migrationMaster shadow testing for large-scale system migrations. Learn to safely rewrite services by comparing outputs between old and new implementations.Redowan Delowar·Dec 13·16 min readFollowDistributed SystemsGoTesting
Gateway pattern for external service callsSeparate business logic from external service calls using the Gateway pattern. Apply dependency inversion and interface segregation in Go.Redowan Delowar·Aug 3·5 min readFollowGoDistributed SystemsDesign Patterns
Notes on building event-driven systemsDeep dive into event-driven architecture patterns. Learn publish-subscribe, CQRS, outbox pattern, eventual consistency, and handling microservice coupling.Redowan Delowar·Sep 21·12 min readFollowNetworkingDistributed SystemsDesign Patterns
Protobuffed contractsDefine service contracts with Protocol Buffers for non-gRPC systems. Generate serializers, maintain self-documented APIs, and ensure cross-language compatibility.Redowan Delowar·May 10·3 min readFollowAPINetworkingDistributed Systems