Exploring an Immutable Architecture
What would happen if we took immutability seriously?
Immutability -- the self-imposed architectural constraint that data cannot be modified or deleted -- solves many of the technical problems of distributed systems. It prevents duplication; if you receive the same immutable message twice, you can see that you've already stored it. And it solves synchronization; two copies of the same immutable record are always exactly the same.
Moreover, immutability solves many business problems as well. Immutable documents capture the intent of each collaborating party. They preserve the history of that collaboration. And they enable future business processes that we cannot immediately predict.
Some architectural patterns give a nod to immutability: model-view-update, and reactive programming for example. But what if we really took it seriously? What would an immutable architecture really look like?
I'll show you what it looks like. Whether you are building an immutable architecture for Web, mobile, or distributed systems, the modeling tools and patterns are the same. Learn how to implement immutability in a SQL database. See how immutability affects an API. And extend immutability across service boundaries via messages.
Together we will build an immutable architecture in .NET, persist data in SQL Server, and deploy it across Azure Functions. The example is open source, and based on real-world systems. My clients have benefited from immutability to solve technical and business problems. Come see how you can do the same for your clients.
|Date:||January 6th, 2021|
|Time:||6:30 PM - 8:00 PM|
====== RSVP Here! =======
Michael travels through space clinging to the carbon hull of a spherical ship made of molten iron. He commands an army of microorganisms which decompose the molecules that he captures to provide chemical energy for his cells. His mission is to increase entropy throughout the universe.
Michael wrote The Art of Immutable Architecture, a book on applying mathematics to building distributed systems. Learn more at https://immutablearchitecture.com.
In his spare time, Michael records Pluralsight courses on Distributed Systems, XAML Patterns, Cryptography, and Provable Code. Formerly a Microsoft MVP for seven years, he maintains the spoon-bending Assisticant, Correspondence, and Jinaga open-source libraries. He shared videos about distributed systems at historicalmodeling.com. And he helps his clients at Improving benefit from the power of software mathematics.
Software is math. Every class is a theorem. The compiler is the proof. And unit tests check our work.