Tapahtumaperustainen ohjelmointi ei perustu suoraan ohjelmavuohon vaan tapahtumat voivat tulla ennalta määräämättömässä järjestyksessä.
Eventtejä eli tapahtumia saapuu esim. näppäimistöltä tai verkosta. Synkronisia tapahtumia voidaan generoida ajastimilla.Dispatcher jakaa tapahtumat tapahtumien käsittelijöille (Handler).