Skip to content


February 5, 2009

I feel myself at the junction of “Pure Message Passing” and “Space Based Architecture”! which one is more suitable for developing high-throughput systems?

The first solution pure-message-passing  (where i feel myself quite a habitat) comes from the world of functional actor based systems well developed in Erlang and followed by its successors in Scala, Kilim or even JUC. Its side effect free nature makes it a perfect choice for highly concurrent, multi core domains but enforces its own programming model using messaging boxes and actors.

The second one, SBA (where i have applied for residency) comes from tuple spaces. a simple but strong paradigm first developed in Linda and followed by its worthy successor javaspaces and successfully used in domains such as orbitz and gigaspaces xap. Its share-take nature makes it a perfect choice for caching and in memory solution but again enforces its model to some extend which is well documented in xap’s PU.

These two model, although seem quite obverse in first sight, but share a lot in nature. they both introduce the separation of data and processor in an even driven paradigm. Even driven nature of these two models make both very strong for suitable todays complex and high demanding nature. and yes, both have their own mathematically proven theory behind.

Now the question comes in mind, which will be superior or will the both remain as competitor? maybe SBA since dummies don’t enjoy immutables? or maybe they collide into one single computational model? mixing quantum physics and relativity? cloud-computing? anyone?

From → architecture

  1. The two models as you rightly said are not that far.

    See Shay Banon blog on that regard:
    Actor Model and Data Grids

    I would say that messaging is a private case of SBA and SBA is the Super Set as it tries to address a broader problem (End to end linear scaling of statefull applications while keeping latency at minimum, throughput at maximum and without compromising on reliability). In SBA the space is used for reliable messaging as well as to storing the state of the transactions. The fact that we use the same technology for both messaging and data solves many of the complexity in transactional systems for example:

    1. Data affinity i.e. how can you route the message to where the data is.
    2. How to ensure consistency between the messaging system the business logic as well as the data layer without the overhead of 2pc
    3. How can you ensure the end to end reliability
    4. How can you reduce the amount of network hops per business transaction

    See more on that regard here and

    Nati S

    • abbaspour permalink

      Thanks Nati for your instructive and fruitful comments.
      As mentioned, I myself do accept these two models are not that far and somehow SBA can be seen as a super model both in the case and many others. In fact this is the point I was going to write about in a post continuing this one.

  2. I look forward for your next post then.
    I noticed that there was a link that was omitted from my previous post which may also be a good source if you want to understand how SBA works, so here it is:

    A Typical SBA Application

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

<span>%d</span> bloggers like this: