Getting started with otelsql, the OpenTelemetry instrumentation for Go SQL
https://opentelemetry.io/blog/2024/getting-started-with-otelsql
otelsql is an instrumentation library for the database/sql library of the Go programming language. It generates traces and metrics from the application when interacting with databases. By doing that, the library allows you to identify errors or slowdowns in your SQL queries that potentially impact the performance of your application.
https://opentelemetry.io/blog/2024/getting-started-with-otelsql
Testing out Profile-Guided Optimization on Dolt's SQL Benchmarks
https://www.dolthub.com/blog/2024-02-02-profile-guided-optimization
https://www.dolthub.com/blog/2024-02-02-profile-guided-optimization
Profile Guided optimisation
https://andrewwphillips.github.io/blog/pgo.html
Learn how PGO improves use of inlining and CPU instruction caches. I show how to get biggest boost for your projects by using the right CPU profile
https://andrewwphillips.github.io/blog/pgo.html
Context Control in Go
https://zenhorace.dev/blog/context-control-go
Best practices for handling context plumbing.
https://zenhorace.dev/blog/context-control-go
integresql
https://github.com/allaboutapps/integresql
IntegreSQL manages isolated PostgreSQL databases for your integration tests.
https://github.com/allaboutapps/integresql
How I write HTTP services in Go after 13 years
https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years
This post covers a range of topics related to building services in Go, including:
- Structuring servers and handlers for maximum maintainability
- Tips and tricks for optimizing for a quick startup and graceful shutdown
- How to handle common work that applies to many types of requests
- Going deep on properly testing your services
- From small projects to large, these practices have stood the test of time for me, and I hope they will for you too.
https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years
Reducing Go Dependencies
https://dgt.hashnode.dev/reducing-go-dependencies
This article is a practical look at reducing dependencies in Go libraries. We'll start by looking at how Go dependencies work, then go into a few ideas around reducing dependencies. Finally, we'll go into a few ways I've implemented these ideas in Huma and the results. Hopefully you can use some of the same techniques in your own projects.
https://dgt.hashnode.dev/reducing-go-dependencies
Feeding a hungry mouse using Go and chromedp
https://www.pacenthink.io/post/feeding-a-hungry-mouse-using-chromedp-and-golang
The backend engineering team at Nurdsoft is a fan of Go, we use it for almost all of our backend services, its easier to get started even our Frontend engineering team can write Go!. This article is about how we can use Go to automate a browser virtually acting like a real user.
https://www.pacenthink.io/post/feeding-a-hungry-mouse-using-chromedp-and-golang
Start With the Go Standard Library
https://matthewsanabria.dev/posts/start-with-the-go-standard-library
When starting a project, new Gophers often ask the following questions.
- What logger should I use?
- What web framework should I use?
- What object–relational mapping (ORM) should I use?
These questions are well-intentioned but they all miss a key aspect about Go.
https://matthewsanabria.dev/posts/start-with-the-go-standard-library
Calling C from Go
https://ericchiang.github.io/post/cgo
As someone who works a lot with operating systems, there are many scenarios that require loading C libraries. Plugins that use shared libraries, low-level device APIs, random Linux utilities. Despite modern options for interprocess communication, sometimes you get a header file and a shared object and have to run with it.
This post covers cgo, Go’s C interoperability layer.
https://ericchiang.github.io/post/cgo
fuego
https://github.com/go-fuego/fuego
Go framework generating OpenAPI documentation from code. Inspired by Nest, built for Go developers.
https://github.com/go-fuego/fuego
Memory leaks in Go
https://dev.to/gkampitakis/memory-leaks-in-go-3pcn
In this post, we are going to have a look at
- What is a memory leak
- Why are memory leaks bad
- Common causes for memory leaks in Go
- Methods for identifying memory leaks
- Investigate memory leaks
https://dev.to/gkampitakis/memory-leaks-in-go-3pcn
Go Microservices: Monitoring, Logging, Debugging, Tracing, and Profiling
https://medium.com/@zakariasaif/demystifying-observability-in-go-microservices-monitoring-logging-debugging-tracing-and-c93435955300
https://medium.com/@zakariasaif/demystifying-observability-in-go-microservices-monitoring-logging-debugging-tracing-and-c93435955300
How to Effectively Scale Microservices Using Containers and Kubernetes on Go
https://blog.stackademic.com/how-to-effectively-scale-microservices-using-containers-and-kubernetes-on-go-1fb05fccb089
https://blog.stackademic.com/how-to-effectively-scale-microservices-using-containers-and-kubernetes-on-go-1fb05fccb089
hatchet
https://github.com/hatchet-dev/hatchet
Hatchet replaces difficult to manage legacy queues or pub/sub systems so you can design durable workloads that recover from failure and solve for problems like concurrency, fairness, and rate limiting. Instead of managing your own task queue or pub/sub system, you can use Hatchet to distribute your functions between a set of workers with minimal configuration or infrastructure.
https://github.com/hatchet-dev/hatchet
yokai
https://github.com/ankorstore/yokai
Simple, modular, and observable Go framework for backend applications.
https://github.com/ankorstore/yokai
mactop
https://github.com/context-labs/mactop
mactop - Apple Silicon Monitor Top written in pure Go Lang! Under 1,000 lines of code.
https://github.com/context-labs/mactop