The staged event-driven architecture (SEDA) refers to an approach to
software architecture that decomposes a complex, event-driven
application
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
into a set of stages connected by queues.
It avoids the high overhead associated with
thread
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
-based
concurrency models (i.e. locking, unlocking, and polling for locks), and decouples event and thread scheduling from application logic. By performing
admission control
Admission control is a validation process in communication systems where a check is performed before a connection is established to see if current resources are sufficient for the proposed connection.
Applications
For some applications, dedicated ...
on each
event queue, the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity.
SEDA employs
dynamic control to automatically tune runtime parameters (such as the scheduling parameters of each stage) as well as to manage load (like performing adaptive
load shedding). Decomposing services into a set of stages also enables modularity and
code reuse, as well as the development of debugging tools for complex event-driven applications.
See also
*
Event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
Overview
An ''event'' can be defined as "a significant change in state". For example, when a consume ...
(EDA)
*
Service-oriented architecture (SOA)
*
Pipeline (computing)
References
Bibliography
*
External links
Apache ServiceMixprovides a Java SEDA wrapper, combining it with related message architectures (
JMS,
JCA & straight-through flow).
JCyclone Java open source implementation of SEDA
Mule ESBis another open-source Java implementation
SEDA: An Architecture for Highly Concurrent Server Applicationsdescribing the PhD thesis by Matt Welsh from Harvard University
by Matt Welsh, July 26, 2010
{{DEFAULTSORT:Staged Event-Driven Architecture
Events (computing)
Software architecture