Kaskada događaja je efekt mreškanja u računalnom programu koji može dovesti do pogrešaka. To se može primijetiti u sustavu koji se oslanja na programiranje vođeno događajima, gdje okidač aktivira kao odgovor na određene radnje. Pogrešan slijed događaja može izazvati eksploziju okidača koji mogu srušiti program, uzrokovati gubitak podataka ili dovesti do drugih problematičnih problema. Programeri mogu poduzeti neke korake kako bi riješili mogućnost kaskade, ovisno o programskom jeziku koji koriste.
Fenomen počinje s jednim pokretačkim događajem. Program pokreće odgovarajući odgovor, koji stvara drugi događaj, signalizirajući drugi okidač. To se može pretvoriti u efekt mreškanja gdje se odjednom počinje događati više procesa. Kako se dogode, korisnik možda neće moći zaustaviti proces, jer računalo odgovara na interne naredbe programa i ne može se zaustaviti osim ako se korisnička sila ne zaustavi ili zatvori, što također može uzrokovati pogrešku.
Jedan primjer kaskade događaja naziva se kaskada brisanja, gdje jedno brisanje može pokrenuti niz brisanja. To se može dogoditi kada računalo pokuša shvatiti podatke koji nakon brisanja više ne rade. Druge kaskade mogu dodavati podatke, premještati ih i mijenjati parametre programa. Neuspjeh može biti relativno mali, ovisno o vrsti informacija.
Neke kaskade događaja su namjerno programirane, jer mogu biti dio funkcija programa. Na primjer, kada student diplomskog studija uredi rad i izbriše fusnotu, sve sljedeće fusnote ne bi bile u redu. Dakle, radnja učenika pokreće kaskadu događaja; program za obradu teksta prenumerira sljedeću fusnotu, što pokreće program da prenumerira sljedeću, i tako dalje. To eliminira potrebu za prolaskom kroz cijeli program i popravljanjem fusnota svaki put kada se doda ili oduzme, te je korisna kaskada događaja.
U drugim slučajevima, kaskada nije poželjna i može stvoriti problem. Jedna opcija za programera je ograničiti broj rukovatelja događajima koji mogu biti aktivni u bilo kojem trenutku. To daje programu prostor za upravljanje višestrukim događajima odjednom, ali može obuzdati kaskadu na početku. Programi se također mogu tražiti da izdaju upozorenja ili pogreške korisnicima kada bi njihove radnje mogle pokrenuti kaskadu događaja ili bi se program mogao automatski zaustaviti ako osjeti gubitak podataka.