Michael L Perry

The Art of Immutable Architecture

Cover of The Art of Immutable Architecture

Available on Amazon.

Learn to build reliable, robust distributed systems

Building distributed systems is hard. Fortunately, there is a robust body of mathematical research from which we can draw inspiration. Idempotent endpoints prevent duplication in the face of repeated messages. Commutative operations tolerate messages arriving out of order. Conflict Free Replicated Data Types (CRDTs) ensure that systems approach a consistent state as they exchange information.

Knowing that your systems meet all of these criteria can be difficult. As developers add features, they run the risk of introducing defects in previously correct code. As long as we leave it up to individuals to continually prove the correctness of increasingly complex systems, the pace of development will gradually decrease over time.

This book provides guidance and patterns for building distributed systems using the power of immutable data structures. These systems will be idempotent, commutative, and associative. They will tolerate duplicated and out-of-order messages. They will converge over time, detect concurrent changes, and provide users the ability to intelligently resolve conflicts.

With these techniques, you will build autonomous microservices, which don't need to wait on one another to make decisions. You will build mobile applications that cache data for offline use and queue user actions to sync up later. You will construct collaborative systems that respond in real time as other users make changes.

Read along with me

Thursdays at 14:00 UTC.

Meet with me and other readers once a week in an open discussion. Join the Immutable Architecture Discord server and video, talk, or just listen in on YouTube. Add the Google Calendar for a reminder.

If you have already started reading, please come with questions and insights from your own application of the concepts. If not, let us know how you have experienced these ideas in the past. We want to hear from you.

From the Book

The book promises additional resources. These are continually updated. Here you will find the latest links and code samples.

  • Reference implementations:
  • Immutable runtimes:
  • Models:
    • Blog
    • Restaurant from Chapter 4: coming soon
    • Conference organization from Chapter 4: coming soon
    • School network from Chapter 6: coming soon
    • Software change tracking from Chapter 8: coming soon
    • Guest blog post from Chapter 9: coming soon
    • Private messaging from Chapter 9: coming soon