A system is causal if the output at anytime depends only on values of the input at the present time and in the past.
y[n] = f(x[n], x[n-1],...)
All memoryless systems are causal. An accumulator system defined by
is also causal. The system defined by
is noncausal.
For real time system where n actually denoted time causality is mportant. Causality is not an essential constraint in applications where n is not time, for example, image processing. If we are doing processing on recorded data, then also causality may not be required.