• Complain

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

Here you can read online Michael L. Perry - The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2020, publisher: Apress, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Michael L. Perry The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems
  • Book:
    The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems
  • Author:
  • Publisher:
    Apress
  • Genre:
  • Year:
    2020
  • Rating:
    4 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

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.

Michael L. Perry: author's other books


Who wrote The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems? Find out the surname, the name of the author of the book and a list of all author's works by series.

The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Contents
Landmarks
Michael L Perry The Art of Immutable Architecture Theory and Practice of - photo 1
Michael L. Perry
The Art of Immutable Architecture
Theory and Practice of Data Management in Distributed Systems
1st ed.
Michael L Perry Allen TX USA Any source code or other supplementary - photo 2
Michael L. Perry
Allen, TX, USA

Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/9781484259542 . For more detailed information, please visit http://www.apress.com/source-code

ISBN 978-1-4842-5954-2 e-ISBN 978-1-4842-5955-9
https://doi.org/10.1007/978-1-4842-5955-9
Michael L. Perry 2020
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.

To Jenny. I wouldnt change a thing.

Introduction

It was 2001. I joined a team using J2EE version 1.3 to build a distributed gift card processor. The point of sale system was written in Microsoft Visual C++ 6.0. We were just learning about this new thing called SOAP, the Simple Object Access Protocol. The running joke was that it was too ill defined to be called a protocol, that it was not about accessing objects, and it was anything but simple. But it did hold some promise for making a C++ client talk to a Java server.

We all added three new books to our libraries. The first was on implementing a SOAP client in C++. The second was on JAXP, the Java API for XML Processing. And the third detailed the operation and limitations of TCP/IP. Armed with these tools, we began to build.

At first, the challenge was just to get the two platforms to talk to each other. When we finally settled on a subset of SOAP that both sides could handle, we thought we were over the hump. Little did we know that on the other side lay mountains.

There were reliability problems with the network. We set up a lab that continually ran transactions every night. We would check the card balances in the morning to find that some machines would have the wrong total. That led to a day of digging through logs, setting up the next test run, and then leaving it going until morning.

Over time, we evolved a message exchange protocol (over SOAP) based on confirmations and acknowledgments. One side sent a message. The next morning, we found messages missing. So next, the recipient confirmed that the message arrived. The next morning, we found duplicates. And so the sender acknowledged the confirmation. Fewer missing messages, but still not perfect.

It took many failed releases and many years of busy holiday seasons to work through all of the problems. We learned about the Two Generals Problem (TGP) and realized why our message exchange protocol was flawed. Then we learned about eventual consistency and designed a working solution. This solution required that there be some uncertainty about how much money was left on a gift card. We tried to have that conversation with the product owner. Bankers get eventual consistency of money. Our product owner was not a banker.

The lessons we learned from gift cards were learned the hard way. Guaranteed delivery does not mean what you think it means. You need to first move data, then process it. Remote procedure calls (RPCs) arent procedure calls. There is no line of code in a clientserver system before which the transaction rolls back and after which it commits. I didnt want to learn those lessons over and over again.

And so I started putting those lessons together and defining a system that I called Historical Modeling . It was based on the idea that historical facts cannot be modified or destroyed. It relied upon the predecessor/successor relationships among facts. And it identified facts based only on their content, not on their location. I filled a notebook with examples of historical models. Eventually, I gained an intuitive feel for which kinds of solutions could be modeled historically and which could not. Thats when I knew that I had to share it. Hopefully I could save someone else the pain of learning these lessons the hard way.

Since then, I have had countless conversations about immutable architectures. I broke the topic down into digestible chunks for conference and user group talks. I have created two open source frameworksCorrespondence and Jinaga. Yet none of that has truly empowered others to begin practicing immutability themselves. It cant just be adopted in pieces. Taking on only a subset of the ideas leaves gaps that can only be filled with the rest of the system.

Which lead to the book that you are now holding. This is a complete treatment of the system, the patterns, and the techniques. It anticipates the problems that Historical Modeling creates and provides the solutions that enable a cohesive implementation. Most importantly, it presents the mathematical foundation that makes the technique work.

If you have read this far into the introduction, you have probably faced some of these same problems. You might even have come up with similar solutions. This leaves only a few more questions you probably have about this book. Who should read it? What will I get out of it? How is it organized? And how do I go about reading it?

Glad you asked.

Who Should Read It

This book is intended primarily for three audiences: decision makers, system builders, and tool crafters. You are a decision maker if you identify the problems for which you want to create solutions. Your title might be CTO, product owner, or business systems analyst. There are some problems that you can outsource, some that you can buy solutions for, and some that define your core business value. You need to find just the right team to build solutions to problems of this third kind. To find them, you need to be able to talk to them. And once youve brought them on board, you need to understand what they are doing. If your core business problem looks like the kind of thing that can be solved with an immutable architecture, this book will help you build that team and have those conversations.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems»

Look at similar books to The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems»

Discussion, reviews of the book The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.