go

go
package bank

import "errors"

var ErrVersionConflict = errors.New("optimistic lock: version conflict")
var ErrInsufficientFunds = errors.New("insufficient funds")

Optimistic Locking in Go With a Version Column on UPDATE

optimistic-locking concurrency postgres
by codesnips 3 tabs
go
package api

import "strings"

type Issue struct {
  Field   string `json:"field"`

JSON schema-ish validation with custom error details

go api json
by Leah Thompson 1 tab
go
package ratelimit

import (
	"sync"
	"time"
)

Token Bucket Rate-Limiting Middleware for a Go net/http API

go net-http middleware
by codesnips 4 tabs
go
package watch

import (
	"sync"
	"time"
)

Debounce Filesystem Change Events Before Triggering a Rebuild in Go

fsnotify debounce filewatcher
by codesnips 3 tabs
go
package order

type CreateOrderRequest struct {
	Reference string        `json:"reference" binding:"required,min=3,max=40"`
	Currency  string        `json:"currency" binding:"required,currency"`
	Customer  Customer      `json:"customer" binding:"required"`

Binding and Validating Nested JSON in Gin With Custom Validators

go gin validation
by codesnips 4 tabs
go
package api

import "net/http"

func ETag(w http.ResponseWriter, r *http.Request, etag string) bool {
  w.Header().Set("ETag", etag)

ETag handling for conditional GETs (cheap caching)

go http caching
by Leah Thompson 1 tab
go
package main

import (
	"context"
	"log"
	"net/http"

Graceful HTTP Server Shutdown in Go with SIGINT and Context Cancellation

go http graceful-shutdown
by codesnips 2 tabs
go
package httpmetrics

import "github.com/prometheus/client_golang/prometheus"

var (
	httpRequestDuration = prometheus.NewHistogramVec(

HTTP Latency and Status Code Middleware with Prometheus in Go

go middleware prometheus
by codesnips 3 tabs
go
package middleware

import (
  "net/http"
)

CORS allowlist middleware (no wildcard surprises)

go http security
by Leah Thompson 1 tab
go
package main

import (
	"log"
	"net/http"
	"time"

Instrumenting Go HTTP Handlers with Prometheus Counters and Histograms

prometheus metrics observability
by codesnips 3 tabs
go
package pipeline

import (
	"bufio"
	"errors"
	"io"

Stream and Transform a Large Log File Line-by-Line with bufio.Scanner

go streaming bufio
by codesnips 3 tabs
go
package config

import (
  "fmt"
  "os"
  "strconv"

Robust environment parsing for bool/int with explicit defaults

go config reliability
by Leah Thompson 1 tab