Let's build a distributed K/V store in Go

Plus PayPal's Go-powered database, a fluent HTTP client library, and Mario makes an appearance. |

#​462 — May 30, 2023

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

Implementing a Distributed Key-Value Store in Go — Phil has spent many months getting up to speed with the Raft consensus algorithm and goes into serious depth on using it along with Go as the basis for a distributed key-value store. There’s much to enjoy here.

Phil Eaton

Finding the Best Go Project Structure — Posts like this always do well because so many folks are uncertain about project structure. It paints the broad picture of how one team found peace with structuring their projects. Go Project Structure is a repo showing off their end result.

Aviv Carmi

Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.

Ardan Labs Consulting sponsor

AWS SDK for Go to Align with Go Release Policy — Starting later this year, the AWS SDK for Go will conform to Go's release policy by supporting the two latest generally available versions, with an extra six months added for good measure. This means Go 1.19 will be supported till February 2024, 1.20 till August 2024, and so on.

Aaron Todd (AWS)

IN BRIEF:

How to Include Git Version Information in Go Apps — In short, you import this versioninfo package and it does the rest – you then get access to the git revision information within your program.

Carl M Johnson

Companies Spend 4.5 Trillion Dollars on IT Annually — Find out how they’re building internal tools to increase developer productivity & impact. Explore Retool’s 2023 State of Internal Tools report.

Retool sponsor

Breaking SHA256: Length Extension Attacks in Practice
Sylvain Kerkour

🛠 Code & Tools

Requests: A Fluent HTTP Client Library"Why I wrote my own Go HTTP client" goes into more depth as to its motivations, but the latest release adds support for XML bodies, responses and errors, as well as setting multiple params and headers at once.

Carl M Johnson

ls-lint 2.0: A Fast File and Directory Name Linter — Written in Go but aimed at JS/front-end dev use cases, ls-lint provides a way to enforce rules for file naming and directory structures.

Lucas Löffel

html-to-markdown 1.4: Convert HTML to Markdown — Actually parses HTML rather than just using regexes so can handle a lot of edge cases regexes can’t. The author also tells us the project just turned five years old! :-)

Johannes Kaufmann

Simplify Access to Your Kubernetes Clusters with Teleport Team — Centrally manage Kubernetes access using identity rather than shared secrets across all environments.

Teleport | goteleport․com sponsor

Joker 1.1: A Small Interpreted Dialect of Clojure Written in Go — A small interpreter, linter and formatter for the popular Lisp dialect.

Roman Bataev

Gut: Convert Go Structs to TypeScript InterfacesTygo is a similar but more established project if you want options.

tompston

Jobs

Join the Gno.land Team — Get to gno us! Sign up for a Q&A with our team to learn about joining Gno.land and building the next-gen smart contract platform.
Gno.land

Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
Hired

🧑‍💻 Got a job listing to share? Here's how.

👾 It's-a-me, Mari-Go!

Dendy: An Expermimental NES Emulator Written in Go — Like many of the most interesting projects, “it serves no practical purpose other than to be a toy project for me” but it’s well put together and, surprisingly, runs quite a few real games. Perhaps a project to be inspired by if you have similar emulation development ambitions.

Max Poletaev

n

Older messages

1 million concurrent tasks

Tuesday, May 23, 2023

Plus Google drops SimHospital on us, lots of data structures, and a C to WASM to Go odyssey. | #​461 — May 23, 2023 Unsub | Web Version Together with Courier logo Go Weekly How to Start a Go Project in

The latest Go survey results

Tuesday, May 16, 2023

Plus Go-powered robots, parsing Go with regular expressions, and a big serving of Barf. | #​460 — May 16, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly The Go Developer Survey 2023 Q1

A modest proposal?

Tuesday, May 9, 2023

Plus Go 1.20.4, a way to visualize call graphs, Go GUI bindings, and a pure Go machine learning library. | #​459 — May 9, 2023 Unsub | Web Version Together with Teleport logo Go Weekly go-callvis:

Writing an OS in Go?

Tuesday, May 2, 2023

Plus random testing, a turbocharged gRPC workflow, and a plea to OpenAI. | #​458 — May 2, 2023 Unsub | Web Version Together with Helios Go Weekly Rueidis 1.0: A Fast Redis Client with Caching —

Test gains and memory drains

Tuesday, April 25, 2023

Plus a real time strategy game built in Go, and a mutation testing tool. | #​457 — April 25, 2023 Unsub | Web Version Together with Courier logo Go Weekly How to Troubleshoot Memory Leaks with Grafana

You Might Also Like

📧 Did you want this discount?

Thursday, March 6, 2025

​ Hey, it's Milan. I want to make sure you see this today because it may be gone this weekend: There are 29 coupons left to join Pragmatic REST APIs with 30% off. After that, the price goes back to

Tiny Type On Yellow Pages ☎️

Thursday, March 6, 2025

That time phone books got a font upgrade. Here's a version for your browser. Hunting for the end of the long tail • March 5, 2025 Tiny Type On Yellow Pages Why AT&T had to redesign its primary

Simplify Kotlin Error Handling

Thursday, March 6, 2025

View in browser 🔖 Articles Goodbye try-catch, Hello runCatching! Exception handling in Kotlin just got cleaner! This article explores how runCatching can replace traditional try-catch blocks, making

JSK Daily for Mar 5, 2025

Wednesday, March 5, 2025

JSK Daily for Mar 5, 2025 View this email in your browser A community curated daily e-mail of JavaScript news Unions and intersections of object types in TypeScript In this blog post, we explore what

Daily Coding Problem: Problem #1709 [Medium]

Wednesday, March 5, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Facebook. Given an array of integers, write a function to determine whether the array

How Swiss Tables make Go 1.24 faster

Wednesday, March 5, 2025

Plus a way to call external library functions without Cgo. | #​544 — March 5, 2025 Unsub | Web Version Together with pgAnalyze Go Weekly Faster Go Maps with Swiss Tables — One of Go's newest

Mapped | European Fertility Rates by Country 👶

Wednesday, March 5, 2025

The population replacement threshold is a fertility rate of 2.1. In 2025, all of Europe, except one small nation, is well below that level. View Online | Subscribe | Download Our App Invest in your

Trust in JS supply chain; sync vs. async code; JIT vulnerabilities; parseInt() and keycap emojis; V8

Wednesday, March 5, 2025

We have 10 links for you - the latest on JavaScript and tools Secure your JavaScript dependencies. socket.dev Sponsor Open source code makes up 90% of most codebases. Socket detects what traditional

The importance of flow state for developers

Wednesday, March 5, 2025

You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture

This beefy phone is a projector too 📽️

Wednesday, March 5, 2025

Biggest tech opps; How Firefox changed; Drone flying tips -- ZDNET ZDNET Tech Today - US March 5, 2025 GOTRAX 4 electric scooter A smartphone that's also a projector? I tested it, and it's