[zeromq-dev] The CAP theorem: A taxonomy for 0MQ sockets, devices, patterns and best practices?

Mark V mvyver at gmail.com
Thu Aug 12 10:34:42 CEST 2010

On Thu, Aug 12, 2010 at 5:13 PM, Martin Sustrik <sustrik at 250bpm.com> wrote:
> Mark V wrote:
>> I wonder if it doesn't make sense to consistently describe 0MQ, its
>> sockets, its devices, patterns and best practices in terms of the CAP
>> theorem?
> It definitely makes sense to describe individual messaging patterns by
> global properties that are guaranteed for a network of nodes in addition to
> properties of each individual node.
> C, A and P are good examples of such global properties. There definitely are
> others as well (the ones I am most interested in are those that have to do
> with scalability).
> However, I don't believe it should go into the user guide. This is an
> advanced stuff and it would only confuse the reader struggling with most
> basic concepts.
> What I want to do is to involve the academia with the issues like this one.
> It can be expressed this way: Forget about 0MQ or any other software. Define
> some basic properties of an individual node and find out what the global
> properties of the network of such nodes would look like. This is an exercise
> for people with strong formal background (think of pi calculus or such)
> rather than engineers and developers.
> Anyway, now I'm coding hard. Academic stuff has to wait for a while :)

Just to clarify my intended audience was developers, such as your's
truly, who don't come from a Comp. Sci. background.
Rather they likely have encountered the CAP trade-off ideas from using
something like Amazon's web services, so it was definitely a practical
Example: When people say, 'this works at internet scale', or 'this is
scalable', I tend to judge by seeing if it is clear which of the C,A,P
is traded for the scalability of the other two.  E.g S3's eventual
consistency, etc. etc.

Personally, when I say 'CAP theorem', I'm just trusting that the proof
of the conjecture does go through :)


> Martin

More information about the zeromq-dev mailing list