PD#618 Distributed Locking: A Practical Guide
March 23, 2025 | Read Online
Distributed Locking: A Practical Guide
21 minutes by Oskar Dudycz
Oskar dives deep into how distributed locks prevent data corruption when multiple services access shared resources simultaneously. He explores implementation options including Redis, ZooKeeper/etcd, database locks, and Kubernetes single-instance deployments. Each approach offers different trade-offs in terms of complexity, consistency guarantees, and operational overhead. The author advises choosing the simplest solution for your infrastructure, locking only critical sections, planning for failure scenarios, and understanding that no distributed lock can be 100% guaranteed under network partitions.
The intelligent terminal with AI built for Mac, Linux, and now Windows
sponsored by Warp
Never forget a command or struggle with syntax again. Warps Agent Mode allows you to type in natural language to accomplish any task right in the terminal. Store and share resources, from repeatable runbooks to templatized commands with Warp Drive.
Life Altering Postgresql Patterns
13 minutes by Ethan McCue
In this article Ethan outlines 11 best practices for working with PostgreSQL databases that can significantly improve developer experience. These include using UUID primary keys, adding created_at and updated_at timestamps to all tables, using restrict constraints for foreign keys, leveraging schemas for organization, implementing enum tables, naming tables in singular form, properly naming join tables, implementing soft deletes, tracking statuses as logs, marking special rows with system_id, using views sparingly, and utilizing JSON for query results to avoid N+1 problems.
Unspoken git secrets that save you mountains of time as an engineer
6 minutes by Jordan Cutler
Jordan shares advanced git commands that experienced developers use to save time and boost productivity. Key highlights include: using `git checkout -` to quickly switch between branches, leveraging `git bisect` to find the exact commit that introduced a bug through binary search, tracking code changes with `git log -G` and `-S` to find specific modifications, managing merge conflicts with `-X theirs` or `-X ours` options, and several performance-enhancing git configurations like `core.fsmonitor` and `push.autosetupremote`.
How Long Should Functions Be?
3 minutes by Kent Beck
Kent discusses the concept that software is grown rather than made, arguing against prescriptive function length limits. Analyzing JUnit 5 code, Kent found function lengths follow a power law distribution where most functions are short while a few are quite long. This distribution suggests that as projects grow, longer functions naturally emerge, and while we can't escape this power law relationship, practices like Test-Driven Development may help increase the proportion of shorter functions.
No Longer My Favorite Git Commit
10 minutes by Michael Lynch
Michael explains why they no longer view the commit message as a model example despite its engaging storytelling and thoroughness. He identifies key flaws: it buries critical information instead of using an "inverted pyramid" structure, fails to clearly explain the actual problem, and references code without proper links. He concludes with his improved rewrite of the commit message and reflects on the importance of defining one's own software engineering principles.
And the most popular article from the last issue was:
newsletters
Would you like to advertise in the newsletter? Check out our media kit and get in touch.

Older messages
PD#617 What Makes Code Hard To Read
Tuesday, March 18, 2025
Visual Patterns of Complexity ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
PD#616 Bloom Filter: A Deep Dive
Sunday, March 9, 2025
How Bloom filters are useful in scenarios with memory constraints ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
PD#615 How Core Git Developers Configure Git
Sunday, March 2, 2025
What git config settings should be defaults by now? ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
PD#614 A calculator app?
Thursday, February 27, 2025
Anyone could make that ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
PD#608 Mistakes engineers make in large established codebases
Sunday, January 12, 2025
You can't practice it beforehand ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
You Might Also Like
LW 175 - Shopify uses AI to Prepare Stores for Script Editor Deprecation
Tuesday, March 25, 2025
Shopify uses AI to Prepare Stores for Script Editor Deprecation Shopify Development news and
Reminder: Microservices rules #7: Design loosely design-time coupled services - part 1
Tuesday, March 25, 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
Delete your 23andMe data ASAP 🧬
Tuesday, March 25, 2025
95+ Amazon tech deals; 10 devs on vibe coding pros and cons -- ZDNET ZDNET Tech Today - US March 25, 2025 dnacodegettyimages-155360625 How to delete your 23andMe data and why you should do it now With
Post from Syncfusion Blogs on 03/25/2025
Tuesday, March 25, 2025
New blogs from Syncfusion ® Create AI-Powered Smart .NET MAUI Data Forms for Effortless Data Collection By Jeyasri Murugan This blog explains how to create an AI-powered smart data form using our .NET
ALERT: Critical Ingress NGINX Controller Vulnerability Allows RCE Without Authentication
Tuesday, March 25, 2025
THN Daily Updates Newsletter cover ⚡ LIVE WEBINAR ➟ How to Eliminate Identity-Based Threats From Phishing to Device Risks: Learn to Remove Entire Threat Classes Effortlessly Download Now Sponsored
🍏 Hey Apple, Give Me a Cellular MacBook — Tips For Building a Period Retro Gaming PC
Tuesday, March 25, 2025
Also: Google Pixel 9a vs. iPhone 16e, and More! How-To Geek Logo March 25, 2025 Did You Know 3 Musketeers candy bars used to have three flavored pieces in each bar: vanilla, chocolate, and strawberry.
⚙️ Altman moves around
Tuesday, March 25, 2025
Plus: AI powers massive surge in cyber attacks
The Sequence Knowledge #517: A Summary of our Series About RAG
Tuesday, March 25, 2025
10 editions that covered the fundamental RAG methods in generative AI. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Why blocking spammers doesn't work
Tuesday, March 25, 2025
Hey there, Right now, your personal information is sitting in massive databases, waiting to be sold. Data brokers have your name, phone number, email—even your medical records and SSN. They sell it to
Greenlandia 🇬🇱
Tuesday, March 25, 2025
What passes for popular culture in Greenland. Here's a version for your browser. Hunting for the end of the long tail • March 24, 2025 Hey all, Ernie here with a pretty significant refresh of a