To illustrate how these patterns work in practice, Ian, Rob, and James describe an example of how one of our teams used a number of Legacy Modernization Patterns to successfully replace integration middleware critical to the operation of their client's business as part of a larger legacy modernization programme. They combined patterns and refactorings to successfully manage risk to the business, and facilitate eating this particularly gristly part of the el
On many occasions when my colleagues find themselves talking to IT executives they hear how the executives have a suite of aging applications built using soon to be, if not already end of life technologies. More often that not these systems are hosted in costly data centers managed by 3rd parties and with inflexible contracts. These applications are critical to the successful operation of the business, while at the same time being one of the largest sources
To do effective legacy displacement, we need to figure out how to break down the problem into manageable pieces. Extract Product Lines does this by identifying product lines and using them as the basis for migration.
more… https://martinfowler.com/articles/patterns-legacy-displacement/extract-product-lines.html
My colleagues do a lot of work that involves replacing legacy software systems. Three of my colleagues - Ian Cartwright, Rob Horn, and James Lewis - have started to capture their experience and advice for this is a collection of patterns. We begin with an overview article that lays out four main categories of activity that need to be done for a successful legacy displacement.
more… https://martinfowler.com/articles/patterns-legacy-displacement/
Bacharach, Rhineland-Palatinate, Germany (2016)
When you are using Leaders and Followers, you can use Follower Reads to achieve better throughput and lower latency. However there is always a replication lag between the leader and the followers, so you may need to take action to preserve consistency.
more… https://martinfowler.com/articles/patterns-of-distributed-systems/follower-reads.html
A personal note on why I wish to give up doing talks more… https://martinfowler.com/articles/202106-reducing-speaking.html
A Lamport Clock is effective to order events on a single server, but with multiple servers we need a vector of version numbers to detect concurrent updates.
more… https://martinfowler.com/articles/patterns-of-distributed-systems/version-vector.html
While a Lamport Clock is often necessary to order events in a distributed system, clients often need to know the actual times too. The Hybrid Clock, Unmesh's next pattern, combines these two demands.
more… https://martinfowler.com/articles/patterns-of-distributed-systems/hybrid-clock.html
Next distributed system pattern from Unmesh is the Lamport Clock. Distributed systems can't assume that time is consistent between servers, and sometimes time goes backwards. Yet it's important to have some way to order events.
more… https://martinfowler.com/articles/patterns-of-distributed-systems/lamport-clock.html