PhilippTheServer

go

Go services: concurrency, HTTP, and shipping a single binary.

  1. A Rules File for Health Evaluation, Validated at Load Time

    Go rules file with gopkg.in/yaml.v3: yaml.Unmarshal accepts operator: greter. Validate operators and metric names at load time so startup fails.

  2. Merging Concurrent Polls Without Ever Serving a Half-Built Graph

    atomic.Pointer swap of a fully merged snapshot so concurrent polls never serve a torn read, a bug go test -race cannot see. errgroup with timeouts.

  3. An Entity Graph as the Data Model for a Heterogeneous Estate

    Go entity graph data model: one Entity struct with Kind and Attrs, typed contains, dependsOn and runsOn edges, health rollup and cycle detection.

  4. Designing a Docker Image Build API: Job Model and Streamed Logs

    Docker SDK ImageBuild returns a nil error when RUN fails: read the error field in the JSON build stream. A Go job model with POST /builds and live logs.

  5. Embedding a Built Frontend Into a Go Binary with go:embed

    //go:embed dist with http.FileServer returns 404 on SPA client routes after a refresh: an index.html fallback, serving the API from the same Go binary.

  6. A Minimal Go HTTP Service with chi, Timeouts and Graceful Shutdown

    Go http.Server ReadHeaderTimeout and srv.Shutdown with signal.NotifyContext: draining in-flight requests on SIGTERM in a chi service, with a test.

All topics · All writing