# Harvest and Yield: Not A Natural Cure for Tradeoff Confusion

DevFeed: [Harvest and Yield: Not A Natural Cure for Tradeoff Confusion](<https://devfeed.tech/articles/harvest-and-yield-not-a-natural-cure-for-tradeoff-confusion-12464.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2014/10/12/harvest-yield.html>)

Author: Marc Brooker

Published: 2014-10-12T00:00:00Z

Content type: opinion

Language: en

Sources: [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog.md>), [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog-2.md>)

Topics: [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [Availability](<https://devfeed.tech/topics/availability.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [databases](<https://devfeed.tech/tags/databases.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [network](<https://devfeed.tech/tags/network.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

## AI overview

The article critiques the harvest-and-yield model as an alternative way to explain distributed-systems tradeoffs. It argues that the model's treatment of partition resilience, consistency, availability, and transactional semantics can reinforce the mistaken idea that CA is a valid choice, while acknowledging that graceful degradation and partial responses can be useful in real-world systems.

## Source excerpt

Harvest and Yield: Not A Natural Cure for Tradeoff Confusion Comments on a 15 year old paper. As I wrote about in my post on PACELC, I don't think the CAP theorem is the right way for teachers to present distributed systems tradeoffs. I also don't think it's ideal for working practitioners, despite its wide use. I prefer Abadi's PACELC, but there are legitimate criticisms of that one too. One criticism is that it's poorly formalized, which makes it hard to apply to precise statements. Another is the PC/EL is an awkward edge case. There are more. Fox and Brewer's harvest and yield model, from Harvest, Yield, and Scalable Tolerant Systems, is a widely promoted alternative. While I like the concepts of harvest and yield, I find it hard to recommend the paper. Both Eric Brewer and Armando Fox have made big contributions to the field, and I like many of their papers. I just don't like this one. I'll start with what I dislike most about it. From the first page: Partition-resilience means that the system as whole can survive a partition between data replicas. CA without P: Databases that provide distributed transactional semantics can only do so in the absence of a network partition separating server peers. I find these statements awkward, and feel like they support the mistaken belief that CA is a valid option. You certainly can't pick CA where your C is linearizability (as in Gilbert and Lynch's proof) or serializability. If you're allowed to pick CA, either your definition of C is weaker than either of those, your definition of A doesn't require minority partitions to make progress, or you're in denial about network partitions (which do exist). Compare the definition of CP: CP without A: In the event of a partition, further transactions to an ACID database may be blocked until the partition heals, to avoid the risk of introducing merge conflicts (and thus inconsistency). Is that saying that CA exists, but just introduces inconsistencies that CP doesn't? Overall, I don't