Staged event-driven architecture: Difference between revisions
m Dating maintenance tags: {{Clarify-span}} |
→References: update ref to Harvard, prev genmaint.com link broken |
||
Line 1: | Line 1: | ||
The '''staged event-driven architecture''' ('''SEDA''') refers to an approach to [[software architecture]] that decomposes a complex, event-driven [[computer program|application]] into a set of stages connected by queues.<ref>{{cite web |
The '''staged event-driven architecture''' ('''SEDA''') refers to an approach to [[software architecture]] that decomposes a complex, event-driven [[computer program|application]] into a set of stages connected by queues.<ref>{{cite web |
||
| accessdate = |
| accessdate = 2013-09-03 |
||
| location = |
| location = |
||
| publisher = |
| publisher = Harvard University |
||
| title = SEDA: An Architecture for Highly Concurrent Server Applications |
| title = SEDA: An Architecture for Highly Concurrent Server Applications |
||
| url = http://www. |
| url = http://www.eecs.harvard.edu/~mdw/proj/seda |
||
| quote = SEDA is an acronym for staged event-driven architecture, and decomposes a complex, event-driven application into a set of stages connected by queues.}}</ref> It avoids the high overhead associated with {{clarify-span|[[thread (computer science)|thread]]-based [[Concurrency (computer science)|concurrency model]]s|date=August 2013}}, and decouples event and thread scheduling from application logic. By performing admission control on each [[event queue]], the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity. |
| quote = SEDA is an acronym for staged event-driven architecture, and decomposes a complex, event-driven application into a set of stages connected by queues.}}</ref> It avoids the high overhead associated with {{clarify-span|[[thread (computer science)|thread]]-based [[Concurrency (computer science)|concurrency model]]s|date=August 2013}}, and decouples event and thread scheduling from application logic. By performing admission control on each [[event queue]], the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity. |
||
Revision as of 10:12, 3 September 2013
The staged event-driven architecture (SEDA) refers to an approach to software architecture that decomposes a complex, event-driven application into a set of stages connected by queues.[1] It avoids the high overhead associated with thread-based concurrency models[clarify], and decouples event and thread scheduling from application logic. By performing admission control 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.
References
- ^ "SEDA: An Architecture for Highly Concurrent Server Applications". Harvard University. Retrieved 2013-09-03.
SEDA is an acronym for staged event-driven architecture, and decomposes a complex, event-driven application into a set of stages connected by queues.
Bibliography
- Welsh, Matt; Culler, David; Brewer, Eric (December 2001), "SEDA: an architecture for well-conditioned, scalable internet services" in "SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles" (1st ed.), Association for Computing Machinery, pp. 230–243, ISBN 1-58113-389-8
See also
External links
- Apache ServiceMix provides a Java SEDA wrapper, combining it with related message architectures (JMS, JCA & straight-through flow).
- Criticism about how SEDA premises (threads are expensive) are no longer valid
- JCyclone: Java open source implementation of SEDA
- Mule ESB is another open-source Java implementation
- SEDA: An Architecture for Highly Concurrent Server Applications describing the PhD thesis by Matt Welsh from Harvard University
- A Retrospective on SEDA by Matt Welsh, July 26, 2010