Martin Fowler

Master feed of news and updates from martinfowler.com

Latest articles

Bitemporal History

It's often necessary to access the historical values of some property. But sometimes this history itself needs to be modified in response to retroactive updates. Bitemporal history treats time as two dimensions: actual history records what history should be given perfect transmission of information, while record history captures...

Bliki: RefinementCodeReview

When people think of code reviews, they usually think in terms of an explicit step in a development team's workflow. These days the Pre-Integration Review, carried out on a Pull Request is the most common mechanism for a code review, to the point that many people witlessly consider that not using pull requests removes all opportunities for...

Bliki: PullRequest

Pull Requests are a mechanism popularized by github, used to help facilitate merging of work, particularly in the context of open-source projects. A contributor works on their contribution in a fork (clone) of the central repository. Once their contribution is finished they create a pull request to notify the owner of the central repository...

Distributed Systems Pattern: Idempotent Receiver

Clients send requests to servers but might not get a response. It's impossible for clients to know if the response was lost or the server crashed before processing the request. To make sure that the request is processed, the client has to re-send the request. If the server had already processed the request and crashed after...

Maximizing Developer Effectiveness: Organizational Effectiveness

Tim finishes his article by looking at how highly effective organizations design their engineering organization to optimize for effectiveness and feedback loops. He illustrates what this looks like by the example of Etsy, who actively measures their ability to put valuable products into production quickly and safely, adjusting...

Distributed Systems Pattern: State Watch

Clients are interested in changes to the specific values on the server. It's difficult for clients to structure their logic if they need to poll the server continuously to look for changes. If clients open too many connections to the server for watching changes, it can overwhelm the server. more…

Some more Distributed Systems Patterns

Unmesh Joshi has a few more of his Patterns of Distributed Systems ready to share with the world. Consistent Core looks at how a large cluster can keep some information strongly consistent, Lease allows unreliable nodes to access limited resources without blocking them when they fail State Watch allows...

Distributed Systems Pattern: Lease

Cluster nodes need exclusive access to certain resources. But nodes can crash; they can be temporarily disconnected or experiencing a process pause. Under these error scenarios, they should not keep the access to a resource indefinitely. more…

The Lies that can Undermine Democracy

Like many Americans, I was transfixed and horrified by the recent assault on the Capitol. Much of this anger originates in lies perpetrated by irresponsible politicians and spread through media agencies. Lies like this can destroy democracies, and while we must have free speech we must not be free of the consequences of that...

Maximizing Developer Effectiveness: Feedback Loops

Tim continues his comparison of high and low effectiveness organizations by comparing their key feedback loops. To improve these, organizations need to understand the importance of micro feedback loops, which are often neglected because they are so small. 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!