The SEDA for Highly-Concurrent Internet Server Applications
This paper presents architecture for handling the massive concurrency and load conditioning demands of busy Internet services. The authors' paper is that existing programming models and operating system structures do not adequately meet the needs of complex, dynamic Internet servers, which must support extreme concurrency (on the order of tens of thousands of client connections) and experience load spikes that are orders of magnitude greater than the average. This design, the Staged Event-Driven Architecture (SEDA), is intended to support massive concurrency demands for a wide range of applications. In SEDA, applications consist of a network of event-driven stages connected by explicit queues. This design allows services to be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity.