Building Concurrent Applications with WebObjects and Scala

Version 135.1 by Ravi Mendis on 2010/03/04 00:17

Given that todays processors ship with dual or quad cores and server processors ship with between 8 to 32 cores, languages like Java, Ruby, Groovy and Python are struggling to keep up.

Scala, as its name suggests is built from the ground-up for concurrent programming - a methodology that can take advantage of these modern multi-core processors.

If you use Scala for a concurrent programming, the chances are that you're using Scala Actor to do that.

Information

Concurrent programming in Scala is based on *Actors* and mailboxes - a common metaphor that is alternatively known as *Message Queues*.

Using Scala Actors with EOF

EOF being notoriously single-threaded, is incredibly unsuitable for use by Scala Actors.
Instead you may still use EOF but only to execute SQL directly.

Using EOAccess to execute SQL

Use Wonder API: ERXEOAccessUtilities.evaluateSQLWithEntityNamed()

Caveats

If you're updating the state of EOs directly using SQL from Scala Actors, you will subsequently need to refresh/refetch these EOs from the WebObjects application.