Many Gophers build projects as a team of one. Sometimes these are side projects, other times they are projects used by millions of people but who are still maintained by a single individual. In this episode, the panel discusses techniques for developing and maintaining Go projects as a solo developer.
Return guests Ben Johnson & Chris James join Mat & Kris to talk about the files and folders of your Go projects, big and small. Does the holy grail exist, of the perfect structure to rule them all? Or are we doomed to be figuring this out for the rest of our lives?
Ben Johnson is at it again.
LiteFS is a FUSE-based file system for replicating SQLite databases across a cluster of machines. It works as a passthrough file system that intercepts writes to SQLite databases in order to detect transaction boundaries and record changes on a per-transction level in LTX files.
I believe Ben was alluding to this (then unreleased) tool on his recent Ship It! appearance…
Ben Johnson, the creator of Litestream, joined Fly.io a few weeks after we migrated changelog.com - episode 50 has all the details. That was pure coincidence. What was not a coincidence, is Gerhard jumping at the opportunity to talk to Ben about Postgres vs SQLite with Litestream.
The prospect of running a cluster of our app instances spread across all regions, with local SQLite & Litestream replication, is mind boggling. Let’s find out from Ben what will it take to get there. Thanks Kürt for kicking off this dream.
Hot off the press from our friend Ben Johnson:
Postlite is a network proxy to allow access to remote SQLite databases over the Postgres wire protocol. This allows GUI tools to be used on remote SQLite databases which can make administration easier.
The proxy works by translating Postgres frontend wire messages into SQLite transactions and converting results back into Postgres response wire messages. Many Postgres clients also inspect the
pg_catalogto determine system information so Postlite mirrors this catalog by using an attached in-memory database with virtual tables. The proxy also performs minor rewriting on these system queries to convert them to usable SQLite syntax.
It appears that Ben is taking code contributions this time around, but only for bug & documentation fixes.
This week we’re talking with Ben Johnson. Ben is known for his work on BoltDB, his work in open source, and as a freelance Go developer. Late January when Ben open sourced his newest project Litestream in the readme he shared how the project was open source, but not open for contribution. His reason was to protect his mental health and the long term viability of the project. On this episode we talk with Ben about what that means, his thoughts on mental health and burnout in open source, choosing a license, and the details behind Litestream - a standalone streaming replication tool for SQLite.
Maintainer burden is real.
As the author of BoltDB, I found that accepting and maintaining third party patches contributed to my burn out and I eventually archived the project. … Small contributions typically required hours of my time to properly test and validate them.
I am grateful for community involvement, bug reports, & feature requests. I do not wish to come off as anything but welcoming, however, I’ve made the decision to keep this project closed to contributions for my own mental health and long term viability of the project.
The simple solution is for GitHub to allow repo owners to restrict which users can interact with the pull requests feature for a given repo. This would be a great usage of the teams feature already in place.
This episode is different than what you’re used to. We’ve been clipping highlights of the show for awhile now to share on Twitter and YouTube. A side effect of that effort is a bunch of awesome clips just sitting on Jerod’s hard drive collecting digital dust. So, here’s a beta test of a “best of” style clips show covering the summer months. Let us know if you like it!
Leaning from mistakes is key to progressing. In this episode Ben, Aaron, Kris, and Jon discuss some of our mistakes - like spending too much time designing a feature that isn’t that important, or using channels excessively when first learning Go - and how we learned from them.
Mat is joined by Peter Bourgon, Kat Zień, and Ben Johnson to talk about application design in Go — principles, trade-offs, common mistakes, patterns, and the things you should consider when it comes to application design.
Ben Johnson, creator of BoltDB, joined the show to talk about NoSQL vs. Sql databases, tradeoffs between the two, and choosing one over the other. We also talk about Ben’s Secret Lives of Data project, visualizing data structures, and go over his motivation and plans for his blog post series “Go Walkthrough” of the Go standard library.
Ben Johnson joined the show to talk about BoltDB, InfluxDB, and several other key-value store databases out there and why he’s so passionate about developing open source software.