The art of immutable architecture : theory and practice of data management in distributed systems

Book Cover
Average Rating
Published
[United States] : Apress, 2020.
Status
Available Online

Description

Loading Description...

More Details

Format
Language
English
ISBN
9781484259559, 1484259556
UPC
10.1007/978-1-4842-5955-9, 10.1007/978-1-4842-5

Notes

Bibliography
Includes bibliographical references and index.
Description
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 assu mptions. 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 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. 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.
Local note
O'Reilly,O'Reilly Online Learning: Academic/Public Library Edition

Also in this Series

Checking series information...

More Like This

Loading more titles like this title...

Reviews from GoodReads

Loading GoodReads Reviews.

Citations

APA Citation, 7th Edition (style guide)

Perry, M. L. (2020). The art of immutable architecture: theory and practice of data management in distributed systems . Apress.

Chicago / Turabian - Author Date Citation, 17th Edition (style guide)

Perry, Michael L. 2020. The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems. Apress.

Chicago / Turabian - Humanities (Notes and Bibliography) Citation, 17th Edition (style guide)

Perry, Michael L. The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems Apress, 2020.

MLA Citation, 9th Edition (style guide)

Perry, Michael L. The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems Apress, 2020.

Note! Citations contain only title, author, edition, publisher, and year published. Citations should be used as a guideline and should be double checked for accuracy. Citation formats are based on standards as of August 2021.

Staff View

Grouped Work ID
9f7f40b4-18df-5cbe-2b57-eebcba7b7eb3-eng
Go To Grouped Work View in Staff Client

Grouping Information

Grouped Work ID9f7f40b4-18df-5cbe-2b57-eebcba7b7eb3-eng
Full titleart of immutable architecture theory and practice of data management in distributed systems
Authorperry michael l
Grouping Categorybook
Last Update2024-03-29 07:51:22AM
Last Indexed2024-05-16 02:33:41AM

Book Cover Information

Image SourcecontentCafe
First LoadedDec 8, 2023
Last UsedDec 8, 2023

Marc Record

First DetectedMar 22, 2023 08:36:15 AM
Last File Modification TimeMar 22, 2023 08:36:15 AM
SuppressedRecord had no items

MARC Record

LEADER08650cam a2200601 a 4500
001on1176247468
003OCoLC
00520230322083431.0
006m     o  d        
007cr |n|||||||||
008200722s2020    xxu     ob    001 0 eng d
015 |a GBC0D7337|2 bnb
0167 |a 019845081|2 Uk
019 |a 1175922592|a 1178998334|a 1187925495|a 1190684465|a 1193271502|a 1195450918|a 1196166676|a 1197556259|a 1198148228|a 1198816602|a 1202027424|a 1203821179
020 |a 9781484259559|q (electronic bk.)
020 |a 1484259556|q (electronic bk.)
0247 |a 10.1007/978-1-4842-5955-9|2 doi
0248 |a 10.1007/978-1-4842-5
035 |a (OCoLC)1176247468|z (OCoLC)1175922592|z (OCoLC)1178998334|z (OCoLC)1187925495|z (OCoLC)1190684465|z (OCoLC)1193271502|z (OCoLC)1195450918|z (OCoLC)1196166676|z (OCoLC)1197556259|z (OCoLC)1198148228|z (OCoLC)1198816602|z (OCoLC)1202027424|z (OCoLC)1203821179
037 |a com.springer.onix.9781484259559|b Springer Nature
040 |a YDX|b eng|e pn|c YDX|d GW5XE|d EBLCP|d LQU|d TEF|d SFB|d OCLCF|d UKMGB|d UMI|d UKAHL|d OCL|d OCLCO|d OCLCQ|d UPM|d LIP|d OCLCQ
049 |a MAIN
050 4|a QA76.9.D3
072 7|a UMZ|2 bicssc
072 7|a COM051230|2 bisacsh
072 7|a UMZ|2 thema
08204|a 005.74|2 23
1001 |a Perry, Michael L.
24514|a The art of immutable architecture :|b theory and practice of data management in distributed systems /|c Michael L. Perry.
260 |a [United States] :|b Apress,|c 2020.
300 |a 1 online resource
336 |a text|b txt|2 rdacontent
337 |a computer|b c|2 rdamedia
338 |a online resource|b cr|2 rdacarrier
347 |a text file|b PDF|2 rda
504 |a Includes bibliographical references and index.
5050 |a Intro -- Table of Contents -- About the Author -- About the Technical Reviewer -- Acknowledgments -- Introduction -- Part I: Definition -- Chapter 1: Why Immutable Architecture -- The Immutability Solution -- The Problems with Immutability -- Begin a New Journey -- The Fallacies of Distributed Computing -- The Network Is Not Reliable -- Latency Is Not Zero -- Topology Doesn't Change -- Changing Assumptions -- Immutability Changes Everything -- Shared Mutable State -- Structural Sharing -- The Two Generals' Problem -- A Prearranged Protocol -- Reducing the Uncertainty -- An Additional Message
5058 |a Proof of Impossibility -- Relaxing Constraints -- Redefining the Problem -- Decide and Act -- Accept the Truth -- A Valid Protocol -- Examples of Immutable Architectures -- Git -- Blockchain -- Docker -- Chapter 2: Forms of Immutable Architecture -- Deriving State from History -- Historical Records -- Building Upon the Past -- Evolution of Understanding -- Mutable Objects -- Identity -- Evolution of State -- Projections -- Two Kinds of State -- Projecting Objects -- Event Sourcing -- Generating Events -- CQRS -- DDD -- Taking a Functional View -- Commutative and Idempotent Events
5058 |a Asynchronous Model View Update -- The Update Loop -- Unidirectional Data Flow -- Immutable App Architecture -- Historical Modeling -- Partial Order -- Predecessors -- Successors -- Immutable Graphs -- Collaboration -- Acyclic Graphs -- Timeliness -- Limitations of Historical Modeling -- No Central Authority -- No Real-Time Clock -- No Uniqueness Constraints -- No Aggregation -- Chapter 3: How to Read a Historical Model -- Fact Type Graphs -- A Chess Game -- Important Attributes -- A Chain of Facts -- Endgame -- Fact Instance Graphs -- The Immortal Game -- Collecting Moves -- A Brilliant Win
5058 |a The Factual Modeling Language -- Declaring Fact Types -- Querying the Model -- Jumping Levels -- Joining Matches -- Existential Quantifiers -- Current Value -- Authorization Rules -- A Chess Application -- Use Cases -- User Interface -- Actions -- Views -- Part II: Application -- Chapter 4: Location Independence -- Modeling with Immutability -- Synchronization -- Exploring Contracts -- Identity -- Auto-incremented IDs -- Environment Dependence -- Parent-Child Insertion -- Remote Creation -- URLs -- Location-Independent Identity -- Natural Keys -- GUIDs -- Timestamps -- Tuples -- Hashes
5058 |a Public Keys -- Random Numbers -- Causality -- Putting Steps in Order -- The Transitive Property -- Concurrency -- Partial Order -- The CAP Theorem -- Defining CAP -- Proving the CAP Theorem -- Test an Algorithm -- Eventual Consistency -- Kinds of Consistency -- Strong Eventual Consistency in a Relay-Based System -- Idempotence and Commutativity -- Deriving Strong Eventual Consistency -- The Contact Management System -- Replaying History -- Conflict-Free Replicated Data Types (CRDTs) -- State-Based CRDTs -- Partially Ordered State -- Causal History -- Vector Clocks -- A History of Facts -- Sets
520 |a 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 assu mptions. 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 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. 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.
590 |a O'Reilly|b O'Reilly Online Learning: Academic/Public Library Edition
650 0|a Database management.|9 35533
650 0|a Electronic data processing|x Distributed processing.|9 37047
77608|i Print version:|a Perry, Michael L.|t Art of immutable architecture.|d [United States] : Apress, 2020|z 1484259548|z 9781484259542|w (OCoLC)1145595923
85640|u https://library.access.arlingtonva.us/login?url=https://learning.oreilly.com/library/view/~/9781484259559/?ar|x O'Reilly|z eBook
938 |a Askews and Holts Library Services|b ASKH|n AH37799812
938 |a ProQuest Ebook Central|b EBLB|n EBL6273607
938 |a ProQuest Ebook Central|b EBLB|n EBL6263981
938 |a YBP Library Services|b YANK|n 301382755
994 |a 92|b VIA
999 |c 291127|d 291127