---
title: "How and why a Go-powered database does manual memory management"
publication: "Go Weekly"
issue: 337
published_at: "2020-11-06"
canonical_url: "https://golangweekly.com/issues/337"
---

And where do Rust and Go both fit in?       

#337 — November 6, 2020 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/337)   

Golang Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/t09miiozkfvedpu1ur45.jpg)](https://bitfieldconsulting.com/golang/rust-vs-go)  

[Insights on Rust vs Go](https://bitfieldconsulting.com/golang/rust-vs-go) — John is a huge Go fan and has done a lot of work in the Go space, but he thinks both Rust _and_ Go are awesome and takes a careful look at where Go and Rust each independently make the most sense. We wouldn't usually strongly feature a 'versus' type post, but several people from the Go and Rust spaces reviewed this piece for quality and fairness. 

John Arundel   

[Manual Memory Management in Go Using `jemalloc`](https://dgraph.io/blog/post/manual-memory-management-golang-jemalloc/) — The creators of the [Dgraph](https://dgraph.io/) GraphQL-based graph database need to squeeze every bit of memory and CPU efficiency out of Go so they took the unusual step of manually managing memory in most critical paths of their app. Worth understanding even if you don’t need to do it yourself. 

Manish Rai Jain   [![\](https://copm.s3.amazonaws.com/eeac27b7.png)](https://get.mux.com/2TMEa5l) 

[Video for Your Go App](https://get.mux.com/2TMEa5l) — Integrate seamlessly into your product's UI. Mux Video is an API-first platform that makes it easy to build beautiful video that streams everywhere. 

Mux sponsor   

[Two Days Remain to Take the Go Survey](https://blog.golang.org/survey2020) — Each year the Go team run a community survey into all of our experiences and ideas about Go. It helps them improve Go and also provides useful data for everyone to analyze how the ecosystem is developing. It closes this Sunday so if you want to take part, now is the time. 

Core Go Team   

[Go 1.15.4 and 1.14.11 Released](https://golang.org/doc/devel/release.html#go1.15.minor) — Just minor fixes as is usual for patch level releases.   

[Preview the Future Design of `pkg.go.dev` at `beta.pkg.go.dev`](https://beta.pkg.go.dev/archive/zip@go1.15.4) 
Go Package Hub  

💻 Jobs  

[Senior Site Reliability Engineer](https://eventstore.com/careers/senior-site-reliability-engineer-sep-2020/) — We are looking for a strong Senior Site Reliability Engineer to help manage Event Store’s multi-cloud provisioning platform. 

Event Store   

[Senior Golang Engineer](https://fingerprintjs.breezy.hr/p/8249bed948d2-senior-golang-engineer) — Seeking senior engineer to build developer-focused fraud prevention APIs. Fully remote company. Must love open source. 

FingerprintJS   

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77582) — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers. 

Vettery  

📘 Tutorials  

[Combining DDD, CQRS, and Clean Architecture by Refactoring a Go Project](https://threedots.tech/post/ddd-cqrs-clean-architecture-combined/) — Learning individual techniques around structuring code isn’t too difficult, but bringing together a raft of ideas in one codebase can get tricky. Here Robert pragmatically shows us how it’s done with DDD (domain driven design), CQRS (Command Query Responsibility Segregation) and Clean Architecture. 

Robert Laszczak   

[Database Migrations in Go](https://www.calhoun.io/database-migrations-in-go/) — Some platforms (e.g. Rails) have built-in database migrations to help manage your schema. Go has some tools as well, but maybe you should just write this capability yourself? 

Jon Calhoun   

[Service to Service Authorization in Go Using X.509 Certificates](https://regeda.me/posts/2020-10-29-service-to-service-authorization-in-go-using-x509-certificates/) — Adding identity and access management via certificates to a TLS-protected connection is one approach to client authentication. 

Anthony Regeda   

[Extracting Meaning from PDF Files in Pure Go](https://www.unidoc.io/post/pdf-text-extraction-in-golang-with-unipdf) — PDF files are everywhere. UniPDF allows you to extract text and tables from PDFs, enabling powerful automations. 

UniDoc sponsor   

[Implement A RESTful HTTP API in Go using Gin](https://dev.to/techschoolguru/implement-restful-http-api-in-go-using-gin-4ap1) — The eleventh entry in a 12-part “backend master class” in Go. 

Tech School   

[What's So Great About Go?](https://stackoverflow.blog/2020/11/02/go-golang-learn-fast-programming-languages/) — An exploration of the traits that have led to the rising popularity of Go. 

John Biggs   

[Getting Started with the MongoDB Go Driver](https://severalnines.com/database-blog/getting-started-mongodb-go-driver) 
Akash Kathiriya   

[Getting Started with go-fuzz](https://adalogics.com/blog/getting-started-with-go-fuzz) 
Adam Korczynski  

🛠 Code & Tools  [![\](https://res.cloudinary.com/cpress/image/upload/v1604676858/ztepzp7fyuqokgvelcb6.png)](https://github.com/autom8ter/dagger) 

[Dagger: A Fast, Concurrency Safe, Mutable, In-Memory Directed Graph Library](https://github.com/autom8ter/dagger) — It also has no dependencies. 

Coleman Word   

[RxGo: Reactive Extensions for the Go Language](https://github.com/ReactiveX/RxGo) — If you’re familiar with [RxJS](https://rxjs-dev.firebaseapp.com/) in the JavaScript world, this is the same idea for Go. 

ReactiveX   

[Getting Started with OpenTelemetry in Go](https://opentelemetry.lightstep.com/go/setup-and-installation?utm_campaign=golang&utm_source=cooper&utm_medium=Email) 

OpenTelemetry sponsor   

[Limiter: Very Simple Rate Limiting Middleware](https://github.com/ulule/limiter) — Use as middleware with `http`, Gin, Beego, and Chi. Uses Redis (optionally). 

Ulule   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/alxeap4tdbvio5zzjbrv.jpg)](https://github.com/trashhalo/imgcat)  

[imgcat: A Tool to Output Images as RGB ANSI Graphics at the Terminal](https://github.com/trashhalo/imgcat) — It looks a bit funky on my macOS Terminal but it does work, at least. 

Stephen Solka   

[Micro 3.0.0: A Platform for Cloud Native Microservice Development](https://github.com/micro/micro) — A popular way to build scalable microservices in Go. 

Micro   

[go-sqlbuilder: A Flexible SQL String Builder Library](https://github.com/huandu/go-sqlbuilder) — Focused mostly on MySQL and Postgres. Includes basic ORM type support via structs. 

Huan Du         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
