Consistency…!
Availability…!
 Messages…!
    & You…
AP!
C 
 theorem
ant
ACID Compli




                     Consistent
           “…as if every request was executing on a single
            node, responding to operations one at a time.”
Available
“…every request received by a non-failing node
  in the system must result in a response.”
Partition Tolerant
“…the network will be allowed to lose arbitrarily
many messages sent from one node to another”
Pick Any Two!?!!
     It’s complicated…
Consistent & Partition Tolerant
     “…it is easy to achieve atomic data and partition
       tolerance. The trivial system that ignores all
           requests meets these requirements.”
Consistent & Available
 “If there are no partitions, it is clearly possible to
           provide atomic, available data.”
Available & Partition Tolerant
      “If there are no consistency requirements, the
    service can trivially return v0, the initial value, in
                response to every request.”
t-Connected Consistent

2 ⋅ t message + t local
What has been
 neglected?
   Latency
   Failure
   Computation
   Durability
   More™
Latency
Petite Partitions
   the little deaths
When the available consistency exceeds the
required availability a choice must be made…
Raising the question, how are business
           decisions made?
What protocols are used
to pass messages in
your organization?
n
  H as your organizatio
chosen consistent, available
   or pa rtition tolerant?
In any human interaction, the required
amount of communication is inversely
proportional to the level of trust…
                                   @bhorowitz
Andrew Clay Shafer
       @littleidea
work on stuff that matters

CAP and you