[Brewer's Conjunction and the Feasibility of Consistent, Available, Partition-Tolerant Web Services](https://dl.acm.org/doi/10.1145/564585.564601)

Brewer's Conjunction and the Feasibility of Consistent, Available, Partition-Tolerant Web Services

When designing distributed web services, there are three properties that are commonly desired: consistency, availability, and partition tolerance. It is impossible to achieve all three. In this note, we prove this conjecture in the asynchronous network model, and then discuss solutions to this dilemma in the partially synchronous model.

Seth Gilbert, Nancy Lynch
[CAP Twelve Years Later: How the “Rules” Have Changed](https://ieeexplore.ieee.org/document/6133253)

CAP Twelve Years Later: How the “Rules” Have Changed

In the decade since its introduction, designers and researchers have used (and sometimes abused) the CAP theorem as a reason to explore a wide variety of novel distributed systems. The NoSQL movement also has applied it as an argument against traditional databases. The CAP theorem states that any networked shared-data system can have at most two of three desirable properties: consistency (C) equivalent to having a single up-to-date copy of the data; high availability (A) of that data (for updates); and tolerance to network partitions (P). This expression of CAP served its purpose, which was to open the minds of designers to a wider range of systems and tradeoffs; indeed, in the past decade, a vast range of new systems has emerged, as well as much debate on the relative merits of consistency and availability. The “2 of 3” formulation was always misleading because it tended to oversimplify the tensions among properties. Now such nuances matter. CAP prohibits only a tiny part of the design space: perfect availability and consistency in the presence of partitions, which are rare. ...

Eric Brewer
Designing Data-Intensive Applications

Designing Data-Intensive Applications

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords? In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. ...

Martin Kleppmann
[Ethereum: A Next Generation Smart Contract & Decentralized Application Platform](https://ethereum.org/en/whitepaper/)

Ethereum: A Next Generation Smart Contract & Decentralized Application Platform

When Satoshi Nakamoto first set the Bitcoin blockchain into motion in January 2009, he was simultaneously introducing two radical and untested concepts. The first is the “bitcoin”, a decentralized peer-to-peer online currency that maintains a value without any backing, intrinsic value or central issuer. So far, the “bitcoin” as a currency unit has taken up the bulk of the pu blic attention, both in terms of the political aspects of a currency without a central bank and its extreme upward and downward volatility in price. However, there is also another, equally important, part to Satoshi’s g rand experiment: the concept of a proof of work based blockchain to allow for public agreement on the order of transactions. Bitcoin as an application can be described as a first-to-file system: if one entity has 50 BTC, and simultaneously sends the same 50 BTC to A and to B, only the transaction that gets confirmed first will process. There is no intrinsic way of determining from two transactions which came earlier, and for decades this stymied the development of decentralized digital currency. Satoshi’s blockchain was the first credible decentralized solution. And now, attention is rapidly starting to shift toward this second part of Bitcoin’s technology, and how the blockchain concept can be used for more than just money. ...

Vitalik Buterin
[Mastering Bitcoin](https://www.oreilly.com/library/view/mastering-bitcoin-3rd/9781098150082/)

Mastering Bitcoin

If you are new to Bitcoin, I highly recommend checking this site: https://learnmeabitcoin.com/ Join the technological revolution that’s taking the financial world by storm. Mastering Bitcoin is your guide through the seemingly complex world of bitcoin, providing the knowledge you need to participate in the internet of money. Whether you’re building the next killer app, investing in a startup, or simply curious about the technology, this revised and expanded second edition provides essential detail to get you started. ...

Andreas M. Antonopoulos, David A. Harding