The architecture is build around a priority queue. An internal clock is used to determine dispatch time for the enqueued events. When an event is to dispatched it is send through an event router, which sends the event to the right client(s).
Graphic of the architecture, for only a single queue and 4 clients:
Figure 6-1. Schematic view of ALSA sequencer system with one queue
Because the sequencer architecture supports more parallel operating queues the actual diagram looks slightly more complex. A sequencer with 4 queues and a few more clients can be found in next diagram:
Figure 6-2. ALSA sequencer system with 4 different queues
All events flow through the queue. Because a priority queue is used instead of a simple FIFO, it's no problem to accept unordered events from multiple clients.
Clients can either be user-land applications, accessing /dev/snd/seq or kernel modules that can directly submit events, and are directly called when a event is dispatched to them (even from interrupt mode).