Martin Fowler

Master feed of news and updates from martinfowler.com

Latest articles

Don't Compare Averages

In business meetings, it's common to compare groups of numbers by comparing their averages. But doing so often hides important information in the distribution of the numbers in those groups. There are a number of data visualizations that shine a light on this information. These include strip charts, histograms, density plots,...

A short review of Coup 53

Coup 53 is a recent documentary of the American-led coup against Mohammad Mosaddegh, the leader of Iran in 1953. It's a worthwhile telling of an oft-overlooked piece of history, even if the meta-narrative that drives the documentary isn't properly examined. more…

Distributed Systems Pattern: Singular Update Queue

When the state needs to be updated by multiple concurrent clients, we need it to be safely updated with one at a time changes. Generally locks are used to protect against concurrent modifications. But if the tasks being performed are time consuming, like writing to a file, blocking all the other calling threads until the...

photostream 124

Two Ocean Lake Trail, Grand Tetons N.P., WY (2011)

Distributed Systems Pattern: Request Pipeline

Communicating between servers within a cluster using Single Socket Channel can cause performance issues if requests need to wait for responses for previous requests to be returned. To achieve better throughput and latency, the request queue on the server should be filled enough to make sure server capacity is fully utilized....

Distributed Systems Pattern: Single Socket Channel

When we are using Leader and Followers, we need to ensure that messages between the leader and each follower are kept in order, with a retry mechanism for any lost messages. We need to do this while keeping the cost of new connections low, so that opening new connections doesn't increase the system's latency. A Single Socket...

A brief review of the Kinesis Advantage2 ergonomic keyboard

About three-and-a-half years ago I bought a Kinesis Advantage2 ergonomic keyboard. This tool isn't cheap, and it's rather unusual in its layout. But I use a keyboard all day, so I wanted one that maximized my comfort and enjoyment at my work. I've found it a worthwhile investment. more…

A brief review of the Kinesys Advantage2 ergonomic keyboard

About three-and-a-half years ago I bought a Kinesys Advantage2 ergonomic keyboard. This tool isn't cheap, and it's rather unusual in its layout. But I use a keyboard all day, so I wanted one that maximized my comfort and enjoyment at my work. I've found it a worthwhile investment. more…

Distributed Systems Pattern: Low-Water Mark

The write ahead log maintains every update to persistent store. It can grow indefinitely over time. Segmented Log allows dealing with smaller files at a time, but total disk storage can grow indefinitely if not checked. A Low-Water Mark acts an index in the write ahead log showing which portion of the log can be discarded....

Distributed Systems Pattern: Segmented Log

A single log file can grow and become a performance bottleneck while its read at the startup. Older logs are cleaned up periodically and doing cleanup operations on a single huge file is difficult to implement. A Segmented Log splits the logfile into smaller files. more…

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!