The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems

Perry, Michael L.

  • 出版商: Apress
  • 出版日期: 2020-07-15
  • 定價: $2,100
  • 售價: 8.0$1,680
  • 語言: 英文
  • 頁數: 418
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1484259548
  • ISBN-13: 9781484259542
  • 相關分類: 軟體工程
  • 立即出貨 (庫存=1)



This book teaches you how to evaluate a distributed system from the perspective of immutable objects. You will understand the problems in existing designs, know how to make small modifications to correct those problems, and learn to apply the principles of immutable architecture to your tools.

Most software components focus on the state of objects. They store the current state of a row in a relational database. They track changes to state over time, making several basic assumptions: there is a single latest version of each object, the state of an object changes sequentially, and a system of record exists.
This is a challenge when it comes to building distributed systems. Whether dealing with autonomous microservices or disconnected mobile apps, many of the problems we try to solve come down to synchronizing an ever-changing state between isolated components. Distributed systems would be a lot easier to build if objects could not change.
After reading The Art of Immutable Architecture, you will come away with an understanding of the benefits of using immutable objects in your own distributed systems. You will learn a set of rules for identifying and exchanging immutable objects, and see a collection of useful theorems that emerges and ensures that the distributed systems we build are eventually consistent. Using patterns, you will find where the truth converges, see how changes are associative, rather than sequential, and come to feel comfortable understanding that there is no longer a single source of truth. Practical hands-on examples reinforce how to build software using the described patterns, techniques, and tools. By the end, you will possess the language and resources needed to analyze and construct distributed systems with confidence.

The assumptions of the past were sufficient for building single-user, single-computer systems. But as we expand to multiple devices, shared experiences, and cloud computing, they work against us. It is time for a new set of assumptions. Start with immutable objects, and build better distributed systems.


What You Will Learn

  • Evaluate a distributed system from the perspective of immutable objects
  • Recognize the problems in existing designs, and make small modifications to correct them
  • Start a new system from scratch, applying patterns
  • Apply the principles of immutable architecture to your tools, including SQL databases, message queues, and the network protocols that you already use
  • Discover new tools that natively apply these principles

Who This Book Is For
Software architects and senior developers. It contains examples in SQL and languages such as JavaScript and C#. Past experience with distributed computing, data modeling, or business analysis is helpful.











- 從不可變物件的角度評估分散式系統
- 辨識現有設計中的問題,並進行小的修改以修正它們
- 從頭開始建立新系統,應用模式
- 將不可變架構的原則應用於您已經使用的 SQL 資料庫、訊息佇列和網路協定等工具
- 發現原生應用這些原則的新工具

本書適合軟體架構師和高級開發人員閱讀。其中包含 SQL 和 JavaScript、C# 等語言的範例。具備分散式運算、資料建模或業務分析的經驗將有所幫助。


Michael L. Perry has built upon the works of mathematicians such as Bertrand Meyer, Leslie Lamport, and Donald Knuth to develop a mathematical system for software development. He has captured this system in a set of open source projects. Michael often presents on math and software at events and online. You can find out more at



Michael L. Perry 建立在數學家 Bertrand Meyer、Leslie Lamport 和 Donald Knuth 的工作基礎上,開發了一個用於軟體開發的數學系統。他將這個系統應用於一系列的開源專案中。Michael 經常在活動和線上演講中介紹數學和軟體相關的主題。您可以在 網站上獲得更多相關資訊。