Una cascada de eventos es un efecto dominó en un programa informático que puede provocar errores. Esto se puede observar en un sistema que se basa en la programación impulsada por eventos, donde los disparadores se activan en respuesta a acciones particulares. La secuencia incorrecta de eventos puede desencadenar una explosión de desencadenantes que pueden bloquear el programa, causar pérdida de datos o dar lugar a otros problemas problemáticos. Los programadores pueden tomar algunas medidas para abordar la posibilidad de una cascada, según el lenguaje de programación que utilicen.
El fenómeno comienza con un solo evento desencadenante. El programa dispara la respuesta apropiada, lo que crea otro evento, señalando otro disparador. Esto puede convertirse en un efecto dominó en el que varios procesos comienzan a ocurrir a la vez. A medida que ocurren, es posible que el usuario no pueda detener el proceso, porque la computadora está respondiendo a los comandos internos del programa y no puede detenerse a menos que el usuario fuerce la detención o se cierre, lo que también puede causar un error.
Un ejemplo de una cascada de eventos se llama cascada de eliminación, donde una sola eliminación puede desencadenar una serie de eliminaciones. Esto puede ocurrir cuando la computadora intenta darle sentido a los datos que ya no parecen funcionar después de la eliminación. Otras cascadas pueden agregar datos, moverlos y cambiar los parámetros del programa. La falla puede ser relativamente menor, dependiendo del tipo de información involucrada.
Algunas cascadas de eventos se programan deliberadamente, porque pueden ser parte de las funciones de un programa. Por ejemplo, cuando un estudiante de posgrado edita una tesis y elimina una nota al pie, todas las notas al pie siguientes quedarían desordenadas. Por lo tanto, la acción del estudiante desencadena una cascada de eventos; el programa de procesamiento de texto vuelve a numerar la siguiente nota al pie, lo que hace que el programa vuelva a numerar la siguiente, y así sucesivamente. Esto elimina la necesidad de revisar todo el programa y corregir las notas a pie de página cada vez que se agrega o quita una, y es una cascada de eventos beneficiosa.
En otros casos, la cascada no es deseable y puede crear un problema. Una opción para un programador es limitar la cantidad de controladores de eventos que pueden estar activos en un momento dado. Esto le da al programa espacio para administrar múltiples eventos a la vez, pero puede frenar una cascada cuando comienza. También se puede solicitar a los programas que emitan advertencias o errores a los usuarios cuando sus acciones podrían desencadenar una cascada de eventos, o el programa podría detenerse automáticamente si detecta la pérdida de datos.