InfoQ Article: Using SEDA to Ensure Service Availability
SEDA is a new strategy for incorporating event driven architecture for scalability and availability of services in the context of SOA. These strategies are based on queuing research pioneered for the use of highly abailable and scalable services, initially in the Web context, but moving into the SOA and Web services context. This article describes SEDA with an implementation in the context of Mule.
In SEDA, a request to system or service can be split in to a chain of stages each doing its part of the total workload of the request. Each stage is connected to the others by request queues, and by controlling the rate at which each stage admits requests, the service can perform focused overload management (for example, by filtering only those requests that lead to resource bottlenecks). By choosing this approach a given computer system can scale very well without having the traditional pile of CPU capacity to handle request bursts.
SEDA is a new strategy for incorporating event driven architecture for scalability and availability of services in the context of SOA.
New?? Hmmm, I recall hearing about it in 2003/2004 when I was developing a low latency, high thro'put server component using Proactor,Reactor pattern.
SEDA hijacked by SOA.. i mean in context of SOA might be new.
Mule was around before that SOA Borg started assimilating everything.
And yes, Mule rocks!
The concepts are very good, but not for the reasons given. It mainly has to do with the limitations of scalability of the ACID model, particularly with "I" of read-committed or above.
We use the queued concepts extensively within our Coherence infrastructure, which allows us to achieve and sustain the maximum theoretical network throughput on Gigabit Ethernet -- and that is using pure Java!
However, the benefits to application developers will be even greater, as these "low level" concepts begin to surface in standards for work flow management, staged transactions, etc.
The term "new" was actually added by the editors...
Yes I´m totally aware of that the SEDA concept is not new. Some of the ideas actually origines back to the grandfather of OO, Kristen Nygaard at the University of Oslo, Norway (great university :-D).
He actually introduced these ideas of processing stages. Øystein Haugen and Birger Møller Pedersen (the UML 2.0 guys, you know!) wrote a paper about this thingy they called (surprise!) STAGE. This mist be way back in the nineties...
So guys, sorry for the editor´s "add-on"...