Skip to main content
  • Book
  • © 2020

The Art of Immutable Architecture

Theory and Practice of Data Management in Distributed Systems

Apress

Authors:

  • Teaches you to design software that never destroys information
  • Shows you how to scale beyond the data center, while honoring the limitations of distributed systems
  • Presents material based on mathematics, and tested over several enterprise projects

Buy it now

Buying options

eBook USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (12 chapters)

  1. Front Matter

    Pages i-xxvi
  2. Definition

    1. Front Matter

      Pages 1-1
    2. Why Immutable Architecture

      • Michael L. Perry
      Pages 3-27
    3. Forms of Immutable Architecture

      • Michael L. Perry
      Pages 29-58
    4. How to Read a Historical Model

      • Michael L. Perry
      Pages 59-92
  3. Application

    1. Front Matter

      Pages 93-93
    2. Location Independence

      • Michael L. Perry
      Pages 95-144
    3. Analysis

      • Michael L. Perry
      Pages 145-182
    4. State Transitions

      • Michael L. Perry
      Pages 183-211
    5. Security

      • Michael L. Perry
      Pages 213-242
    6. Patterns

      • Michael L. Perry
      Pages 243-286
  4. Implementation

    1. Front Matter

      Pages 287-287
    2. Query Inverses

      • Michael L. Perry
      Pages 289-317
    3. SQL Databases

      • Michael L. Perry
      Pages 319-354
    4. Communication

      • Michael L. Perry
      Pages 355-383
    5. Generated Behaviors

      • Michael L. Perry
      Pages 385-404
  5. Back Matter

    Pages 405-418

About this book

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 tomultiple 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.



Reviews

“Immutable architecture is something to watch and learn from, and the author succeeds in presenting it very well.” (A. Mariën, Computing Reviews, August 19, 2021)

Authors and Affiliations

  • Allen, USA

    Michael L. Perry

About the author

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 qedcode.com.



Bibliographic Information

Buy it now

Buying options

eBook USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access