Channel: golang

Event Sourcing in Go: From Zero to Production | Serge Skoredin

golang

Tutorial: Getting started with fuzzing - The Go Programming Language

golang

Goma Gateway

devops golang

Logging in Go with Slog: A Practitioner’s Guide

golang

ankur-anand/unisondb: A Streaming, Replicated, Reactive Multi-Modal Database for the Edge. (WIP)

databases distributed systems golang

Distributed Transactions in Go: Read Before You Try | Three Dots Labs blog

distributed systems golang

Go Assembly Mutation Testing

golang

lrstanley/go-ytdlp: yt-dlp cli bindings for Go

golang

webriots/rate: A high-performance rate limiter library for Go applications

golang

caisson-go/closer at main � utrack/caisson-go

golang

Graceful Shutdown in Go: Practical Patterns

golang

Testing concurrent code with testing/synctest - The Go Programming Language

golang

Let’s Implement Consistent Hashing From Scratch

distributed systems golang

Summary of How I write HTTP services in Go after 13 years:

  • The NewServer constructor - big constructor that takes all dependencies as parameters. returns http.Handler. configures its own muxer and calls out to routes.go. includes setting up middleware, CORS, logging. ** Long argument lists - type safety in arguments.
  • Map the entire API surface in routes.go
  • func main() only calls run() - run() returns an error and accepts OS fundamentals as parameters for easier testing. background context is created in main but all other context handling is done in run. ** Gracefully shutting down - pass context through and check it at each level. ** Controlling the environment - use flags.NewFlagSet inside run. make a replacement os.Getenv for tests and pass that to run (or the real thing for main).
  • Maker funcs return the handler - creates a readable closure for each.
  • Handle decoding/encoding in one place - for JSON/XML encode/decode.
  • Validating data - single method interface with Valid(ctx context.Context) (problems map[string]string)
  • The adapter pattern for middleware - take an http.Handler and return one.
  • Sometimes I return the middleware ** An opportunity to hide the request/response types away - keeps global space clear.
  • Use inline request/response types for additional storytelling in tests
  • sync.Once to defer setup - anything expensive during handler setup, defer to the first time it’s called to improve overall app startup time.
  • Designing for testability ** What is the unit when unit testing? - multiple levels of options from run() down to calling individual handler functions. ** Testing with the run function ** Waiting for readiness - loop on hitting a /healthz endpoint until the server has started.

golang

Build a Modern Godot 4 MMO with Golang | Tristan Batchler

golang

Go All the Way: Why Golang is Your Swiss Army Knife for Modern Development

golang

Designing a distributed circuit breaker for disabling webhook endpoints in Golang

distributed systems golang

money package - github.com/Rhymond/go-money - Go Packages

golang

harranali/authority: Role Based Access Control (RBAC) with database persistence

golang

alecthomas/participle: A parser library for Go

golang

gemini-cli: Access Gemini models from the command-line - Eli Bendersky’s website

ai golang

makew0rld/merkdir: Create Merkle trees from your directories.

golang

gen2brain/go-mpv: Go bindings for libmpv

golang

Failsafe-go - Fault tolerance and resilience patterns for Go

golang sre

Sign in with GitHub in Go - Eli Bendersky’s website

golang

maypok86/otter: A high performance lockless cache for Go. Many times faster than Ristretto and friends.

datastructures golang

How I write HTTP services in Go after 13 years | Grafana Labs

golang

zitadel/oidc: Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation

golang security

Building cross-cloud identity federation in Go for secure data sharing

devops golang security

Perfectly Reproducible, Verified Go Toolchains - The Go Programming Language

devops golang security

Crash Course on Go Generics - Calhoun.io

golang

How to start a Go project in 2023 | Ben E. C. Boyter

golang

FAAS in Go with WASM, WASI and Rust - Eli Bendersky’s website

golang rust wasm

Embed Funnel in your App

golang

A beginner’s guide to creating a web-app in Go using Ent | ent

Ent appears to be a SQLAlchemy-like ORM option for Go.

databases golang

moving a go app from ec2 to fly.io and using go embed for static files with etags

golang

cshum/imagor: Fast, secure image processing server and Go library, using libvips

golang

go test and parallelism

golang

Building conc: Better structured concurrency for Go

distributed systems golang

Graceful Shutdown: A Must-Have for Cloud-Native Go Apps | Medium

golang

stripe/smokescreen: A simple HTTP proxy that fogs over naughty URLs

distributed systems golang security

optimizing large file transfers in linux with go using sendfile()

golang

Why Go and not Rust? | Loris Cro’s Blog

golang rust

A cloud platform to enrich services made with Ergo Framework.

distributed systems erlang golang

thejerf/suture: Supervisor trees for Go.

distributed systems erlang golang

deterministic builds in go

golang

How We Write GitHub Actions in Go

devops golang

Get familiar with workspaces - The Go Programming Language

golang

https://dev.to/kinggo/http-request-id-association-with-logs-46jc

golang

Consistent hash with virtual nodes in Go. - DEV Community

distributed systems golang