Tapahtumakaskadi on tietokoneohjelmassa aaltoileva vaikutus, joka voi johtaa virheisiin. Tämä voidaan havaita järjestelmässä, joka perustuu tapahtumapohjaiseen ohjelmointiin ja laukaisee tulipalon vastauksena tiettyihin toimintoihin. Väärä tapahtumasarja voi laukaista laukaisimien räjähdyksen, joka voi kaataa ohjelman, aiheuttaa tietojen menetyksen tai johtaa muihin ongelmallisiin ongelmiin. Ohjelmoijat voivat ryhtyä joihinkin toimiin ryhtyäkseen käyttämään ohjelmointikieltä.
Ilmiö alkaa yhdellä laukaisutapahtumalla. Ohjelma laukaisee asianmukaisen vastauksen, joka luo toisen tapahtuman ja ilmoittaa toisen laukaisimen. Tämä voi muuttua aaltoiluvaikutukseksi, jossa useita prosesseja alkaa tapahtua kerralla. Niiden esiintyessä käyttäjä ei ehkä pysty pysäyttämään prosessia, koska tietokone vastaa ohjelman sisäisiin komentoihin eikä voi pysähtyä, ellei käyttäjän voima pysähdy tai sulkeudu, mikä voi myös aiheuttaa virheen.
Yksi esimerkki tapahtumakaskadeista on nimeltään poistopaketti, jossa yksi poisto voi käynnistää sarjan poistoja. Tämä voi tapahtua, kun tietokone yrittää ymmärtää tietoja, jotka eivät enää näytä toimivan poiston jälkeen. Muut kaskadit voivat lisätä tietoja, siirtää niitä ja muuttaa ohjelmaparametreja. Vika voi olla suhteellisen vähäinen, riippuen kyseessä olevasta tiedosta.
Jotkut tapahtumakaskadit on ohjelmoitu tarkoituksella, koska ne voivat olla osa ohjelman toimintoja. Esimerkiksi, kun jatko -opiskelija muokkaa opinnäytetyötä ja poistaa alaviitteen, kaikki seuraavat alaviitteet ovat silloin epäkunnossa. Siten opiskelijan toiminta laukaisee tapahtumaketjun; tekstinkäsittelyohjelma numeroi uudelleen seuraavan alaviitteen, joka saa ohjelman numeroimaan seuraavan ja niin edelleen. Tämä poistaa tarpeen käydä läpi koko ohjelma ja korjata alaviitteet aina, kun ne lisätään tai otetaan pois, ja se on hyödyllinen tapahtumaketju.
Muissa tapauksissa kaskadi ei ole toivottavaa ja voi aiheuttaa ongelmia. Yksi vaihtoehto ohjelmoijalle on rajoittaa tapahtumakäsittelijöiden määrää, jotka voivat olla aktiivisia milloin tahansa. Tämä antaa ohjelmahuoneelle mahdollisuuden hallita useita tapahtumia kerralla, mutta voi hillitä kaskadia sen alkaessa. Ohjelmia voidaan myös kehottaa antamaan käyttäjille varoituksia tai virheitä, kun heidän toimintansa voivat laukaista tapahtumaketjun, tai ohjelma voi pysähtyä automaattisesti, jos se havaitsee tietojen menetyksen.